我正在尝试制作一个登录网站并执行一些自动化活动的程序。我一直在使用 HttpClient 4.0.1,并使用它开始:http ://hc.apache.org/httpcomponents-client/primer.html 。
在这个特定站点上,cookie 不是通过“set-cookie”标头设置的,而是在 javascript 中设置的。
到目前为止,我无法实现登录。
我尝试了以下事情:
- 为出现在 firebug 中的所有请求标头手动添加标头
名称值对 [] 数据 = {
新的 BasicNameValuePair("Host",host),
new BasicNameValuePair("User-Agent"," Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7"),
new BasicNameValuePair("接受","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"),
new BasicNameValuePair("Accept-Language","en-us,en;q=0.5"),
new BasicNameValuePair("Accept-Encoding","gzip,deflate"),
new BasicNameValuePair("接受字符集","ISO-8859-1,utf-8;q=0.7,*;q=0.7"),
new BasicNameValuePair("Keep-Alive","300"),
new BasicNameValuePair("Connection","keep-alive"),
new BasicNameValuePair("Referer",referer),
新的 BasicNameValuePair("Cookie",cookiestr)
};
for(NameValuePair 对:数据){
loginPost.addHeader(pair.getName(),pair.getValue());
}
- 创建 BasicClientCookies 并使用 setCookieStore 进行设置。不幸的是,我不知道如何测试 cookie 是否真的被发送。另外,有没有办法测试正在发送哪些其他自动参数?(比如正在模拟哪个浏览器等)。
我得到的响应是:HTTP/1.1 417 Expectation Failed
我还是新手,所以有人知道问题可能是什么吗?如果没有,我将发布更多详细信息、代码和站点。