gpt4 book ai didi

Java Apache HttpClient 缺少一些 Cookie

转载 作者:行者123 更新时间:2023-11-30 11:29:15 24 4
gpt4 key购买 nike

我搜索了很长时间,但没有找到对我的问题真正有用的东西。 I used this as a guide ,向下滚动到:“3. Apache HttpClient – 自动登录 Google”。

当您使用 Chrome 时,您可以查找用于当前页面的 Cookie。登录浏览网站其他页面后,那些Cookies比HttpClient登录浏览其他页面后得到的要多得多。在 Chrome 中显示的 11 个中,HttpClient 只得到两个。该页面需要这些 Cookie,因为我收到的 HTML 仅包含您未登录时获得的预览。
一些丢失的 Cookie 称为“userauth_name”、“member_id”等。我认为它们是登录所必需的,对吧? :P.

我从指南代码中唯一改变的是:
- 当然是用于登录的 URL 和要加载的其他页面
- 在sendPost:
主机:post.setHeader("Host", "accounts.google.com");
Referer: post.setHeader("Referer", "https://accounts.google.com/ServiceLoginAuth ");
- 在 getFormParams
在我的测试页面上,表单标签没有 id 属性,所以我做了这个:

    Elements forms = doc.getElementsByTag("form");
Element loginform = null;
for (Element inputElement : forms) {
if (inputElement.attr("name").equals("authform"))
loginform = inputElement;
}
Elements inputElements = loginform.getElementsByTag("input");

List<NameValuePair> paramList = new ArrayList<NameValuePair>();

for (Element inputElement : inputElements) {
String key = inputElement.attr("name");
String value = inputElement.attr("value");

if (key.equals("username"))
value = username;
else if (key.equals("password"))
value = password;

paramList.add(new BasicNameValuePair(key, value));

}

指南中的标题之后是代码中的基本步骤:
1.发送GET请求获取登录表单。 (我得到 responecode= 200)
2. 使用 jsoup html 解析器获取表单输入。
3. 构造参数并发起POST请求进行鉴权。 (响应代码= 200)
4. 向 Gmail 发送另一个 GET 请求。 (响应代码= 200)

没有服务器错误或 java 错误。

Again the question: Why there are some Cookies missing?

最佳答案

某些 cookie 可能会因违反实际 cookie 管理政策而被拒绝。通常情况是否如此,很容易通过打开上下文日志记录来查明,如 this guide 中所述。 .

关于Java Apache HttpClient 缺少一些 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471494/

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