如何在创建Spring的RestTemplate时设置标题?

时间:2015-03-13 06:22:34

标签: java spring resttemplate

我们可以在拨打电话时设置标头以暂停模板,即restTemplate.exchange(postUrl, HttpMethod.GET, entity, String.class);
其中实体包含标题。

但是对于我的要求,我想在创建restTemplate时设置cookie头,而不是在触发实际调用时。我不想重复创建HttpEntity并为其设置标题的代码。

有没有办法在创建restTemplate时设置标题?

1 个答案:

答案 0 :(得分:2)

您似乎可以注入自己的HttpMessageConverter实施,该实施接受所有请求 - canWrite返回true。并在write方法中将所需的标头添加到HttpOutputMessage.getHeaders()

我记得当我ClientHttpRequestFactory.createRequest为其他特定于服务器的静态标题执行类似操作时,我已经覆盖了。

<强>更新

  

RestTemplate.doWithRequest的代码中,您可以看到是否没有request.body,然后它会从headers中读取request entity

在这种情况下,您只需展开RestTemplate并从被覆盖的httpEntityCallback您自己的RequestCallback返回。