gpt4 book ai didi

java - Apache HttpClient 是否将 java.net.CookieHandler 设置的 Cookie 添加到 Request 中?

转载 作者:行者123 更新时间:2023-12-04 06:33:42 25 4
gpt4 key购买 nike

我的简单 Apache HttpClient (4.0.1) 客户端应用程序在 main() 方法中向服务器 URL 发出 HttpGet 请求并打印响应。启动时,应用程序在静态 block 中注册 java.net.CookieHandler 的实现。

在检查服务器端收到的 cookie 时,我发现 HttpClient 发出 GET 请求时服务器没有收到 cookie。

另一方面,当我用普通的 java.net.URL(HTTP_URL).openStream() 替换 Apache HttpClient 时,cookie 由请求上的 CookieHandler 设置并由服务器接收。

是不是 CookieHandler 不能与 Apache HttpClient 一起使用?

代码:

客户端.java

静止的 {
CookieHandler.setDefault(new CookieHandler() {
公共(public) map 获取(URI u,列表 r){
返回 Collections.singletonMap("Cookie",
Collections.singletonList(COOKIE_STRING));
}
});
}

使用 HttpClient (不按要求放置 cookie)

HttpClient 客户端 = 新 DefaultHttpClient();
HttpGet get = new HttpGet(HTTP_URL);
client.execute(get);

使用 java.net.URL (根据要求设置 cookie)

URL url = 新 URL(HTTP_URL);
InputStream 是 = url.openStream();

最佳答案

Is it that CookieHandler does not work with Apache HttpClient?



那是对的。

Apache HttpClient 代码库使用自己的 cookie 和 cookie 存储表示/机制。这是 HttpClient tutorial 相关部分的链接. (这很粗略,但是如果您查看相关类的 javadocs,您应该能够弄清楚如何使用它。)

(如果您使用的是旧版本的 Apache HttpClient,请注意 API 已发生重大变化。)

关于java - Apache HttpClient 是否将 java.net.CookieHandler 设置的 Cookie 添加到 Request 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5084970/

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