如何在Spring RestTemplate请求上设置“Accept:”标题?

我想在我使用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字符串。

我的问题是:当我使用RestTemplate时,如何指定Accept:header(例如application / json,application / xml,…)和request方法(例如GET,POST,…)

您需要使用接受HttpEntityexchange方法之一,您还可以设置HttpHeaders

例如

RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

restTemplate.exchange(url, HttpMethod.POST, entity, String.class);

RestTemplate将使用一些注册的HttpMessageConverter实例将JSON转换为您的类的实例。

http://stackoverflow.com/questions/19238715/how-to-set-an-accept-header-on-spring-resttemplate-request

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何在Spring RestTemplate请求上设置“Accept:”标题?