Java HttpClient不发送cookie
我正在尝试使用RedditAPI-www.Reddit.com/dev 这是我的HttpClientHelper: 当我尝试登录Reddit时,它会起作用:Java HttpClient不发送cookie,java,cookies,Java,Cookies,我正在尝试使用RedditAPI-www.Reddit.com/dev 这是我的HttpClientHelper: 当我尝试登录Reddit时,它会起作用: HttpClientHelper client = new HttpClientHelper(Endpoints.User.login); client.addParamForPost("api_type", "json"); client.addParamForPost("user", username);
HttpClientHelper client = new HttpClientHelper(Endpoints.User.login);
client.addParamForPost("api_type", "json");
client.addParamForPost("user", username);
client.addParamForPost("passwd", password);
client.addParamForPost("rem", String.valueOf(true));
client.executePost();
结果:{json:{data:{cookie:30310021214-10-27T16:02:27300937022ED465F695747A2AA7FD******,需要_https:false,modhash:9CH7BILR85CE7C2A427EF87BDB42132F738C3A1***,错误:[]}
以下是被掩盖的返回的cookies:
List<Cookie> cookies = client.getHttpClient().getCookieStore().getCookies();
for (int i = 0; i < cookies.size(); i++) {
Log.d("", cookies.get(i).toString());
}
[version: 0][name: __cfduid][value: d****7d2bfa753ef32b2f2861c117b8c141444******][domain: .reddit.com][path: /][expiry: Mon Dec 23 23:50:00 GMT 2019]
[version: 0][name: reddit_session][value: 30310021%2C2014-10-27T15%3A18%3A39%2C5**08054f8fa07d82aa0ac027a2f**********][domain: reddit.com][path: /][expiry: Thu Dec 31 23:59:57 GMT 2037]
结果:{}
但是,当我打印cookie时,结果与预期的结果相同,因为我使用的是DefaultHttpClient的同一个实例:
List<Cookie> cookies = client.getHttpClient().getCookieStore().getCookies();
for (int i = 0; i < cookies.size(); i++) {
Log.d("", cookies.get(i).toString());
}
[version: 0][name: __cfduid][value: d****7d2bfa753ef32b2f2861c117b8c141444******][domain: .reddit.com][path: /][expiry: Mon Dec 23 23:50:00 GMT 2019]
[version: 0][name: reddit_session][value: 30310021%2C2014-10-27T15%3A18%3A39%2C5**08054f8fa07d82aa0ac027a2f**********][domain: reddit.com][path: /][expiry: Thu Dec 31 23:59:57 GMT 2037]
我做错了什么
谢谢。以前的帖子,但是
您没有指出检索用户数据失败的性质
我观察到的一件事是reddit_会话cookie有一个“reddit.com”域,而另一个有一个“reddit.com”域。前者仅在您使用“reddit.com”而不是“www.reddit.com”时发送回服务器,而后者将发送回所有子域。也许这就是失败的原因
我很困惑,如果你在最初的请求中使用了“www.reddit.com”域,那么你居然还得到了这些cookie
HttpClientHelper client = new HttpClientHelper(Endpoints.User.me);
client.executeGet();
List<Cookie> cookies = client.getHttpClient().getCookieStore().getCookies();
for (int i = 0; i < cookies.size(); i++) {
Log.d("", cookies.get(i).toString());
}
[version: 0][name: __cfduid][value: d****7d2bfa753ef32b2f2861c117b8c141444******][domain: .reddit.com][path: /][expiry: Mon Dec 23 23:50:00 GMT 2019]
[version: 0][name: reddit_session][value: 30310021%2C2014-10-27T15%3A18%3A39%2C5**08054f8fa07d82aa0ac027a2f**********][domain: reddit.com][path: /][expiry: Thu Dec 31 23:59:57 GMT 2037]