zoukankan      html  css  js  c++  java
  • 新浪模拟登陆 HttpClient 4 cookie rejected 问题

      最近在写一个新浪微博爬虫,由于新浪微博的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、度娘了多遍,无非都是用

    View Code
    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

    View Code
     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进行的空操作,避免了这些这个问题...

      

  • 相关阅读:
    CodeForces
    [VS Code] 入门-自定键盘快捷键
    代码格式化工具:clang-format
    用 shell 脚本做 restful api 接口监控
    [apue] 一图读懂 unix 文件句柄及文件共享过程
    Python Django开发的WebSSH 堡垒机
    最好用的流程编辑器bpmn-js系列之基本使用
    树莓派系列(第三篇):树莓派换源 、连接WiFi、安装transmission、samba
    教你用MacBook玩童年FC游戏
    vscode、hbuider编辑器代码片段示例
  • 原文地址:https://www.cnblogs.com/joeman/p/2984490.html
Copyright © 2011-2022 走看看