您好我使用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]);
}
}
请告诉我,我犯了一个错误。 提前致谢
答案 0 :(得分:0)
我已尝试使用所有可用的CookiePolicy,并设置“用户代理”内容但未成功。 从我看到的java - verbose中,getCookie()方法中存在一个被困的异常:
org.apache.commons.httpclient.util.DateParseException
从网站收到的cookie(我可以在firefox上用Cookie编辑器看到它)可能对httpclient不利;看看this线程是否存在同样的问题 根据我的看法,您需要启用日志记录并检查httpclient在cookie解析时所执行的操作。