[英]How to get Cookies using HttpClient
您好,我正在使用 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]);
}
}
请告诉我我犯了一个错误。 提前致谢
我已经尝试了所有可用的 CookiePolicy 并且还没有成功设置“用户代理”的东西。 从我在 java 中看到的 - 冗长,在 getCookie() 方法中有一个被困异常引发:
org.apache.commons.httpclient.util.DateParseException
可能从站点收到的 cookie(我可以在 firefox 上用 cookie 编辑器看到它)对 httpclient 有一些不好的东西; 看看这个线程是否有同样的问题。
据我所知,您需要启用日志记录并检查 httpclient 对 cookie 解析的作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.