java – 使用RestTemplate设置安全性cookie

我试图使用RestTemplate和Jackson json转换器调用Restful JSON服务.现在,为了调用服务,我需要传递一个安全cookie.我可以通过使用URLConnection来实现这一点(参见下面的代码)

URL url= new URL("https://XXXXXXXX");

URLConnection yc = url.openConnection();
yc.setRequestProperty("SecurityCookie", ssocookie.getValue());</code>

什么是RestTemplate中的并行?这是我用来使用RestTemplate调用Restful Service的代码片段:

RestTemplate rest = new RestTemplate();  
InputBean input = new InputBean();  
input.setResource("SampleResource");  
HttpEntity<InputBean > entity = new HttpEntity<InputBean>(input);  
ResponseEntity<OutputBean> response1 = rest.postForEntity(
    "https://XXXXXXXXX", 
    entity, OutputBean.class);</code>

在使用RestTemplate调用服务时,我无法弄清楚如何传递安全cookie.对此的任何帮助都会很棒.

解决方法:

您可以通过将RestTemplate连接到自定义ClientHttpRequestFactory来访问RestTemplate使用的基础HttpURLConnection,它允许您访问底层连接以设置标题,属性等.在创建新连接时,RestTemplate使用ClientHttpRequestFactory.

特别是,您可以扩展SimpleClientHttpRequestFactory实现并覆盖prepareConnection()方法:

public class YourClientHttpRequestFactory extends SimpleClientHttpRequestFactory {
  @Override
   protected void prepareConnection(HttpURLConnection connection, String httpMethod) {
     connection.setRequestProperty("SecurityCookie", ssocookie.getValue());
   }
}
上一篇:使用Spring 4 restTemplate(Java Client和RestController)上传MultipartFile列表


下一篇:当HTTP请求具有返回状态401时,如何在Java中解析响应主体