新浪模拟登陆 HttpClient 4 cookie rejected 问题
2013-05-16 17:03
555 查看
最近在写一个新浪微博爬虫,由于新浪微博的post用户名密码是用RSA加密,看了IT杂男记中的用rsa加密模拟登陆http://marspring.mobi/http-client-weibo/,似乎解决了
登陆问题,成功登陆了,但是HttpClient 一直报WARN:
Cookie rejected: "[version: 0][name: U_TRS2][value: 00000
0be.116527ba.51510ea5.8f309118][domain: .sina.com.cn][path: /][expiry: null]". Illegal domain attribute "sina.com.cn". D
omain of origin: "weibo.com"
我用的是httpclient-4.2.3.jar,google、度娘了多遍,无非都是用
,但我试了在N个时候设置这个参数,都木有解决的办法,但是也不影响它的登陆,WARN一直报,后面的HttpGet也都可以正确取到(IT杂男记中说HC3直接这样是无法解决登
陆问题),所以也就没管了,虽然调试起来比较麻烦,因为一直给你报WARN..
刚刚在官网http://hc.apache.org/httpcomponents-client-ga/看到HttpClient
Tutorial中的cookie管理这一章,有段说自定义CookiePolicy
把这段放到自己代码中,测试了一下,WARN居然不报了,那问题就解决了..
想了想,问题还是在CookiePolicy这里....网上说的用浏览器cookie策略,我觉得需要每个请求对”浏览器“策略的cookie进行一系操作,而我构造的http请求无需传递cookie值,就导致cookie rejected,自定义的cookie对cookie进行的空操作,避免了这些这个问题...
登陆问题,成功登陆了,但是HttpClient 一直报WARN:
Cookie rejected: "[version: 0][name: U_TRS2][value: 00000
0be.116527ba.51510ea5.8f309118][domain: .sina.com.cn][path: /][expiry: null]". Illegal domain attribute "sina.com.cn". D
omain of origin: "weibo.com"
我用的是httpclient-4.2.3.jar,google、度娘了多遍,无非都是用
httpget.getParams().setParameter( ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY); //设置 HttpClient 接收 Cookie,用与浏览器一样的策略
,但我试了在N个时候设置这个参数,都木有解决的办法,但是也不影响它的登陆,WARN一直报,后面的HttpGet也都可以正确取到(IT杂男记中说HC3直接这样是无法解决登
陆问题),所以也就没管了,虽然调试起来比较麻烦,因为一直给你报WARN..
刚刚在官网http://hc.apache.org/httpcomponents-client-ga/看到HttpClient
Tutorial中的cookie管理这一章,有段说自定义CookiePolicy
1 CookieSpecFactory csf = new CookieSpecFactory() { 2 public CookieSpec newInstance(HttpParams params) { 3 return new BrowserCompatSpec() { 4 @Override 5 public void validate(Cookie cookie, CookieOrigin origin) 6 throws MalformedCookieException { 7 // Oh, I am easy 8 } 9 }; 10 } 11 }; 12 13 DefaultHttpClient httpclient = new DefaultHttpClient(); 14 httpclient.getCookieSpecs().register("easy", csf); 15 httpclient.getParams().setParameter( 16 ClientPNames.COOKIE_POLICY, "easy");
把这段放到自己代码中,测试了一下,WARN居然不报了,那问题就解决了..
想了想,问题还是在CookiePolicy这里....网上说的用浏览器cookie策略,我觉得需要每个请求对”浏览器“策略的cookie进行一系操作,而我构造的http请求无需传递cookie值,就导致cookie rejected,自定义的cookie对cookie进行的空操作,避免了这些这个问题...
相关文章推荐
- C#HttpClient或使用CookieContainer模拟登陆后HttpRequest不发送cookie的解决方法及原因
- HttpClient4的cookie rejected问题,以及如何消除该warning输出
- HttpClient 4 cookie rejected 问题
- 解决Apache HttpClient Cookie rejected的问题
- httpclient模拟登陆,不支持https的问题
- Java通过httpclient获取cookie模拟登录
- C#如何HttpWebRequest模拟登陆,获取服务端返回Cookie以便登录请求后使用
- java httpclient 模拟登陆京东
- HttpClient4 警告: Invalid cookie header 的问题解决
- httpclient/jsoup模拟登陆人人网
- HTTPclient模拟登陆交大图书馆---图书馆客户端
- HttpClient4.5.2请求时出现Cookie rejected警告的解决方法
- C# : WebRequest发起Http Post请求模拟登陆并cookie处理示例
- Htmlunit / HttpClient 报 Cookie rejected 警告 的解决方案。
- HttpClient+Jsoup模拟登陆,解析HTML,信息筛选(广工图书馆)
- android AsyncHttpClient的CookieStore问题
- HttpClient 模拟登陆百度 2015.10.21 JAVA
- (转)HttpClient 模拟登陆,保持会话并进行后续操作
- httpclient提示Cookie rejected: violates RFC 2109: domain must start with a dot
- AsyncHttpClient的CookieStore问题