在Spring中添加Accept标头

时间:2016-10-31 13:17:22

标签: java spring http-headers resttemplate spring-rest

我正在尝试在Spring RESTful应用程序中使用http://www.foaas.com/中的JSON对象。但是,它们需要与Accept标头进行内容协商。

我在SO上尝试过这种方法:

RestTemplate restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();
headers.set("Accept", "application/json");

HttpEntity entity = new HttpEntity(headers);

HttpEntity response = restTemplate.exchange(foaasURI, HttpMethod.GET, entity, String.class);

每次尝试都禁止403.

使用Postman添加Accept标头工作正常,所以我知道foaas end上的一切都是正确的。我该怎么办?

3 个答案:

答案 0 :(得分:2)

问题不在于"application/json"标题。您当前的代码已成功添加"application/json"标题。

由于某些身份验证问题,服务器拒绝了您的请求。

  

403响应通常表示以下两种情况之一:

     

提供了身份验证,但未通过身份验证的用户   允许执行请求的操作。

请参阅此link

答案 1 :(得分:0)

使用HttpHeaders#setAccept

headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

答案 2 :(得分:0)

您似乎应该在foass.com的请求中指定用户代理标头。

headers.set("User-Agent", "eltabo");

RestTemplate默认requestfactory(SimpleClientHttpRequestFactory)没有为其requets指定任何用户代理。

希望它有所帮助。