使用 Spring RestTemplate 调用请求时无法检索 cookie
Unable to Retrieve cookies when request is called using Spring RestTemplate
我有两个网络应用程序。第二个应用程序有一个 HttpSession,第一个应用程序知道它的 sessionid。
我正在使用 RestTemplate 通过将其 session id 添加到 headers 来从第一个应用程序向第二个应用程序发出请求。
当第二个应用程序收到请求时,我试图从请求中读取它的所有 cookie。但是,我只看到了 JSESSIONID cookie,并没有得到我之前设置的所有 cookie。
假设,我在浏览器上手动访问相同的 url,我看到所有这些 cookie 都已检索到。
第一次申请时提出的要求:
String sessionId = "6iuvgwy5ceqzwlxh646qo0ms";//SessionId of second application
String url = "http://example.com/data/retrieve";
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Cookie", "JSESSIONID=" + sessionId);
HttpEntity<String> requestEntity = new HttpEntity<String>(null, requestHeaders);
ResponseEntity<String> responseEntity = restTemplate.exchange(url,
HttpMethod.GET, requestEntity, String.class);
如果使用 Spring RestTemplate 无法完成此操作,请建议我是否有任何其他方法。
没有 session cookie。 Cookie只是一个header。
您可能会将 header 重置为只有 JSESSIONID
。
要修复它,稍微改变一下逻辑
你以某种方式得到了 session id(我猜是从一些请求中得到的)。不仅获取 session,还获取所有其他 cookie,并在调用 restTemplate
.
时将它们添加到 requestHeaders
我有两个网络应用程序。第二个应用程序有一个 HttpSession,第一个应用程序知道它的 sessionid。
我正在使用 RestTemplate 通过将其 session id 添加到 headers 来从第一个应用程序向第二个应用程序发出请求。
当第二个应用程序收到请求时,我试图从请求中读取它的所有 cookie。但是,我只看到了 JSESSIONID cookie,并没有得到我之前设置的所有 cookie。
假设,我在浏览器上手动访问相同的 url,我看到所有这些 cookie 都已检索到。
第一次申请时提出的要求:
String sessionId = "6iuvgwy5ceqzwlxh646qo0ms";//SessionId of second application
String url = "http://example.com/data/retrieve";
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Cookie", "JSESSIONID=" + sessionId);
HttpEntity<String> requestEntity = new HttpEntity<String>(null, requestHeaders);
ResponseEntity<String> responseEntity = restTemplate.exchange(url,
HttpMethod.GET, requestEntity, String.class);
如果使用 Spring RestTemplate 无法完成此操作,请建议我是否有任何其他方法。
没有 session cookie。 Cookie只是一个header。
您可能会将 header 重置为只有 JSESSIONID
。
要修复它,稍微改变一下逻辑
你以某种方式得到了 session id(我猜是从一些请求中得到的)。不仅获取 session,还获取所有其他 cookie,并在调用 restTemplate
.