RestTemplate客户端和cookie
我正在用Java编写一个简单的客户端,以允许可重用通过RESTful
API访问的专有病毒扫描软件。要上传文件以扫描API,需要先使用POST
Connect(连接),然后再要求将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