我的当前代码:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Mall[] malls = restTemplate.getForObject(url, Mall[].class);
我需要为我的请求添加一些自定义标头,格式如下:
X-TP-DeviceID : <GUID>
在我的情况下,最简单的方法是什么?是否有任何方式在将请求发送到服务器之前向我的restTemplate
对象添加自定义标头定义?
[编辑]
这正确吗?
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpHeaders headers = new HttpHeaders();
headers.set("X-TP-DeviceID", "1234567890");
HttpEntity entity = new HttpEntity(headers);
HttpEntity<Mall[]> response = restTemplate.exchange(url, HttpMethod.GET, entity, Mall[].class);
Mall[] malls = response.getBody();
[添加]
好的,我设法让它起作用了。然而,我对此并不完全满意。在我的情况下,我需要为我所做的所有调用提供相同的自定义标头。
那么,我的下一个问题是 - 是否可能将我的自定义标头设置为在每个 web-service
调用时自动添加,例如通过扩展 RestTemplate
类并将所有自定义标头放在那里?然后,我所需要做的就是简单地使用我的自定义扩展 RestTemplate
代替默认的,所有我的自定义标头都将默认存在。