我们可以在拨打电话时设置标头以暂停模板,即restTemplate.exchange(postUrl, HttpMethod.GET, entity, String.class);
其中实体包含标题。
但是对于我的要求,我想在创建restTemplate时设置cookie头,而不是在触发实际调用时。我不想重复创建HttpEntity并为其设置标题的代码。
有没有办法在创建restTemplate时设置标题?
答案 0 :(得分:2)
您似乎可以注入自己的HttpMessageConverter
实施,该实施接受所有请求 - canWrite
返回true
。并在write
方法中将所需的标头添加到HttpOutputMessage.getHeaders()
。
我记得当我ClientHttpRequestFactory.createRequest
为其他特定于服务器的静态标题执行类似操作时,我已经覆盖了。
<强>更新强>
从
RestTemplate.doWithRequest
的代码中,您可以看到是否没有request.body
,然后它会从headers
中读取request entity
。
在这种情况下,您只需展开RestTemplate
并从被覆盖的httpEntityCallback
您自己的RequestCallback
返回。