我正在尝试在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上的一切都是正确的。我该怎么办?
答案 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指定任何用户代理。
希望它有所帮助。