我想在使用Spring的RestTemplate
发出的请求中设置Accept:
的值。
@RequestMapping(
value= "/uom_matrix_save_or_edit",
method = RequestMethod.POST,
produces="application/json"
)
public @ResponseBody ModelMap uomMatrixSaveOrEdit(
ModelMap model,
@RequestParam("parentId") String parentId
){
model.addAttribute("attributeValues",parentId);
return model;
}
下面是我的Java REST客户端:
public void post(){
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("parentId", "parentId");
String result = rest.postForObject( url, params, String.class) ;
System.out.println(result);
}
这对我有效;我从服务器端获得一个JSON字符串。
我的问题是:当我使用RESTTemplate时,如何指定accept:
头(例如application/json
,application/xml
,...)和请求方法(例如get
,post
,...)?
我建议使用接受HttpEntity
的Exchange
方法之一,您还可以为该HttpHeaders
设置HttpHeaders
。(还可以指定要使用的HTTP方法。)
例如,
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
HttpEntity<String> entity = new HttpEntity<>("body", headers);
restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
我更喜欢这个解决方案,因为它是强类型的。Exchange
需要HttpEntity
。
HttpEntity<String> entity = new HttpEntity<>("body", headers);
restTemplate.postForObject(url, entity, String.class);
在RestTemplate#PostForObject
Javadoc中提到了这一点。
request
参数可以是HttpEntity
以便向请求添加额外的HTTP头。
问题内容: 我想在使用Spring的请求中设置的值。 这是我的Spring请求处理代码 这是我的Java REST客户端: 这对我有用;我从服务器端获取了JSON字符串。 我的问题是:当我使用RestTemplate时,如何指定标头(例如)和请求方法(例如,…)? 问题答案: 我建议使用可以接受的方法之一,也可以为其设置。(你也可以指定要使用的HTTP方法。) 例如, 我喜欢这种解决方案,因为它是
我的问题是:在使用RESTTemplate时,如何指定头(例如、,...)和请求方法(例如、,...)?
问题内容: 我的Java Web应用程序有问题。 这是index.jsp中的代码: 当我有线请求时,我的浏览器发送以下标头: Tomcat服务器返回以下信息: 但是,如果我以我的形式发送“é”(UTF-8中的%C3%A9),则会显示“é”。 我了解的是浏览器发送了一个用UTF-8(%C3%A9)编码的“é”。 但是服务器将其解释为ISO-8859-1。因此,%C3解码为Ã,%A9解码为©,然后发
AcceptHeaderLocaleResolver解析器会检查客户端(比如,浏览器,等)所发送的请求中是否携带accept-language请求头。通常,该请求头字段中包含了客户端操作系统的地区信息。不过请注意,该解析器不支持时区信息的解析。
问题内容: 我想在对URL 发送请求之前设置代理。因为我能够连接curl命令来设置代理,但是使用Java代码却无法做到这一点。 卷曲命令: 在Java文件中完成代码更改: 通过上述代码在我的java文件中的更改,我得到以下错误: 这表明我无法将该URL与尝试用于连接URL的代理连接。 问题答案: 我认为这可能会有所帮助:
问题内容: 我在Go中做一个简单的http GET: 但是我找不到在doc中自定义请求标头的方法,谢谢 问题答案: 请求的字段是公共的。您可以这样做: