RestTemplate客户端和cookie

我正在用Java编写一个简单的客户端,以允许可重用​​通过RESTful

API访问的专有病毒扫描软件。要上传文件以扫描API,需要先使用POSTConnect(连接),然后再要求将POST文件发布到服务器。在对Connect的响应中,POST服务器设置了cookie,随后将需要cookie

POST来发布文件。我当前RestTemplate在客户端中使用Spring 。

我的问题是我如何访问响应中的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);

以上是 RestTemplate客户端和cookie 的全部内容, 来源链接: utcz.com/qa/429093.html

回到顶部