gpt4 book ai didi

java - 我怎样才能使用 Jersey 客户端获取 'jsessionid'?

转载 作者:行者123 更新时间:2023-12-02 02:00:50 29 4
gpt4 key购买 nike

我正在使用 jersey-client 1.19.4 来测试我的 Web 应用程序。如果我用 postman 进行测试,我可以在“发送”操作后找到 cookie“JSESSIONID”。我可以在 ClientResponse.toString() 中找到 'jsessionid=...',但 ClientResponse.getCookies() 什么也不返回。

WebResource webResource = client.resource(someUrl);
FormDataMultiPart formData = new FormDataMultiPart();
formData.bodyPart(new FormDataBodyPart("userId", userId));
formData.bodyPart(new FormDataBodyPart("uPasswd", uPasswd));
ClientResponse response = webResource.accept("*/*").type(MediaType.MULTIPART_FORM_DATA_TYPE).post(ClientResponse.class, formData);
System.out.println("response: " + response.toString()); // 'jsessionid' found here
List<NewCookie> cookies = response.getCookies();
System.out.println("# of cookies: " + cookies.size()); // prints "# of cookies: 0"

如何从 ClientResponse 获取“JSESSIONID”?

最佳答案

JSESSIONID 可以通过几种不同的方式设置。根据 JSR-000315 Java Servlet 3.0 Final Release ,第 7.1 章 session 跟踪机制,可以使用以下内容:

  • Cookies
  • SSL Sessions
  • URL Rewriting

在您的情况下,似乎正在使用 URL 重写。两个最常见的原因是:

  • 服务器配置为不发出 Cookie
  • 您的客户端不支持 Cookie

由于您在使用 Postman 时获取了 cookie,因此很可能意味着您的 Jersey 客户端不处理 cookie。使用 jersey-apache-client 将其与 Apache HttpClient 集成的一种方法 as per this answer .

关于java - 我怎样才能使用 Jersey 客户端获取 'jsessionid'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51608688/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com