使用Java中的标头创建一个http get请求

时间:2014-03-23 15:37:08

标签: java spring web-services http-headers resttemplate

这是我的网址:https://api.something.json

我需要在请求中添加以下标头。

1)接受:application / json

2)x-api-key:randomKey

我也需要在请求中添加一些参数。如名称和ID

然后我需要发出GET请求。

我在这里查看了这个链接,它说明了如何使用uri变量发出请求,但无法找到如何向请求添加标头。 http://docs.spring.io/spring/docs/3.0.x/api/org/springframework/web/client/RestTemplate.html#getForObject(java.lang.String,java.lang.Class,java.lang.Object ...)

我有兴趣知道如何将标头添加到请求中。感谢。

1 个答案:

答案 0 :(得分:1)

您需要使用exchange(..)方法之一。创建MultiValueMap以保留标题并将其传递给调用

MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
headers.add("x-api-key", "randomKey");

HttpEntity<Void> entity = new HttpEntity<>(headers);
entity.getHeaders().setContentType(MediaType.APPLICATION_JSON);

YourResponseType response = restTemplate.exchange(url, HttpMethod.GET, entity, YourResponseType.class);