我想在使用 Spring 的 RestTemplate
发出的请求中设置 Accept:
的值。
这是我的 Spring 请求处理代码
@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 字符串。
My question is: how can I specify the Accept:
header (eg application/json
, application/xml
, … ) and request method (eg GET
, POST
, … ) 当我使用 RestTemplate 时?
原文由 edaklij 发布,翻译遵循 CC BY-SA 4.0 许可协议
我建议使用
exchange
HttpEntity
方法之一,您还可以为其设置HttpHeaders
(您还可以指定要使用的 HTTP 方法。)例如,
我更喜欢这个解决方案,因为它是强类型的,即。
exchange
期望一个HttpEntity
。但是,您也可以将
HttpEntity
作为request
参数传递给postForObject
。这在
RestTemplate#postForObject
Javadoc 中提到。