+-
java – 带有cookie的RestTemplate客户端
我正在用 Java编写一个简单的客户端,以允许可重用​​使用通过RESTful API访问的专有病毒扫描软件.要上传用于扫描API的文件,需要POST for Connect,然后使用POST将文件发布到服务器.在对Connect POST的响应中,服务器设置了cookie,需要在后续POST中出现以发布文件.我目前正在客户端使用Spring RestTemplate.

我的问题是如何访问响应中的cookie以便在后续POST中转发回服务器?我可以看到它们存在于返回的标题中,但ResponseEntity上没有方法可以访问它们.

最佳答案
RestTemplate有一个方法,您可以在其中定义Interface ResponseExtractor< T>,此接口用于获取响应的标头,一旦您拥有它们,您可以使用HttpEntity将其发回并再次添加.

 .add("Cookie", "SERVERID=c52");

尝试这样的事情.

String cookieHeader = null;

new ResponseExtractor<T>(){
      T extractData(ClientHttpResponse response) {
        response.getHeaders();
      }
}

然后

  HttpHeaders headers = new HttpHeaders();
  headers.add("Cookie", cookieHeader );

  ResponseEntity<byte[]> response = restTemplate.exchange("http://example.com/file/123",
      GET,
      new HttpEntity<String>(headers),
      byte[].class);

另请阅读此post

点击查看更多相关文章

转载注明原文:java – 带有cookie的RestTemplate客户端 - 乐贴网