【问题标题】:How to get Cookies using HttpClient如何使用 HttpClient 获取 Cookie
【发布时间】:2011-02-02 10:55:58
【问题描述】:

您好,我正在使用 HttpClient 获取 Cookie,但我找不到任何 Cookie。我的代码如下:

public class LoginTab {

    private Cookie[] cookies;
    HttpClient httpClient;
    HttpState httpState;
    HashMap postData;

    public LoginTab() {
        httpClient = new HttpClient();
        httpState = new HttpState();
        httpClient.getHttpConnectionManager().
                getParams().setConnectionTimeout(300000);
        httpClient.setState(httpState);
        // RFC 2101 cookie management spec is used per default
        // to parse, validate, format & match cookies
        httpClient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
        postData= new HashMap();
    }

    public String getMethod(String url) {
        GetMethod getMethod = new GetMethod(url);
          String pageSoure="";
        try{
        httpClient.executeMethod(getMethod);
         pageSoure=getMethod.getResponseBodyAsString();
        extractUsefulPostData(pageSoure, postData);
        getMethod.releaseConnection();
        }catch(Exception ex)
        {
            ex.printStackTrace();
        }
        return pageSoure;
    }
    public static void main(String[]arg)
    {
        LoginTab loginTab= new LoginTab();
        System.out.println(loginTab.getMethod("http://tab.com.au/"));
        Cookie [] cookies=loginTab.httpState.getCookies();
        System.out.println(cookies.length);
        for(int i=0;i<cookies.length;i++)
            System.out.println(cookies[i]);
    }
}

请告诉我我犯了一个错误。 提前致谢

【问题讨论】:

  • 你不能提供更多细节吗?你遇到了什么错误?
  • 没有错误我想统计一下使用Mozile Live Http Headers时有多少cookies有cookies Cookie: Language=Language_LocaleID=3081; Account=Account_DisplayBalance=1; __utma=167555387.2008132460.1269847689.1269937122.1269946500.6; __utmz=167555387.1269847689.1.1.utmcsr=(直接)|utmccn=(直接)|utmcmd=(无); _dmnid=920336_1269934756044
  • 感谢您的回复 thecosman..
  • 哦,我注意到你添加了JAVA标签,正要问什么语言。你只是想用java制作你自己的网络浏览器......大概只是为了咯咯笑和大便。 (我更喜欢用不同的说法,但我是 PC)
  • 这可能对你有帮助:java2s.com/Code/Java/Apache-Common/…

标签: java apache-commons-httpclient


【解决方案1】:

我已经尝试了所有可用的 CookiePolicy 并且还设置了“用户代理”的东西但没有成功。 从我在 java 中看到的 - 详细的 getCookie() 方法中存在一个被捕获的异常,该异常引发:

org.apache.commons.httpclient.util.DateParseException

可能从站点收到的 cookie(我可以在 Firefox 上使用 Cookie 编辑器看到它)对 httpclient 不利;看看this 线程是否有同样的问题。
据我所知,您需要启用日志记录并检查 httpclient 对 cookie 解析的作用。

【讨论】:

  • 感谢您的回答,但仍然没有 cookie
猜你喜欢
  • 2012-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
相关资源
最近更新 更多