Как получить куки с помощью HttpClient - PullRequest
2 голосов
/ 30 марта 2010

Здравствуйте. Я использую 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]);
    }
}

Пожалуйста, скажите мне, что я допустил ошибку. Заранее спасибо

1 Ответ

0 голосов
/ 30 марта 2010

Я попробовал все доступные файлы CookiePolicy, а также установил «пользовательский агент» безуспешно. Из того, что я вижу в java - многословно, в методе getCookie () возникает ловушечная исключительная ситуация:

org.apache.commons.httpclient.util.DateParseException

Вероятно, cookie, полученные с сайта (я вижу это с помощью Cookie Editor в Firefox), имеют что-то плохое для httpclient; посмотрите на этот поток для той же проблемы.
Из того, что я вижу, вам нужно включить ведение журнала и проверить, что делает httpclient при разборе файлов cookie.

...