我当前的代码:
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
而不是库存的,默认情况下我的所有自定义标题都将出现在那里。