|
楼主 |
发表于 2013-9-23 23:21:21
|
显示全部楼层
本帖最后由 poisition123 于 2013-9-23 23:34 编辑
多谢站长的细心回复,在下愚钝,还是不太明白。
使用JS跳转的,就必须取出JS跳转的网址然后进行请求 --------------我用HttpAnalyzer看了,没发现有新的跳转网址。我申请的是http://xxxxxx/index.php首页,只不过在httpitem里设置URL是"http://******/logging.php?action=login&injax=1&loginsubmit=yes"。
而且document.location.reload()方法没带URL参数,说明刷新的就是原来的网址。是不是我再请求跳转页面还是index首页?再请求httpitem里的URL是不是还是“http://******/logging.php?action=login&injax=1&loginsubmit=yes"?
比如你这个应该是这样
第一步请求一个页面获取Cookie //此处是不是Method="GET"?
然后带个Cookie去请求跳转页面。 //此处是不是Method="POST"?
得到Cookie如有就带这个,如果没有就带上一步的进行跳转。
下面根据我的理解写的代码,总算偶尔能登录一两回,但时好时坏,页面重载的界面时不时蹦出来,能否麻烦抽空帮忙看看问题出哪里?多谢了
[code=csharp]
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = @"http://xxxxxx/logging.php?action=login&injax=1&loginsubmit=yes", //URL必须项,******指本地网址
Referer = "http://xxxxxx/index.php",
Method = "GET", //URL 可选项 默认为Get
Timeout = 3000,
Cookie = "",//字符串Cookie 可选项
UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",//用户的浏览器类型,版本,操作系统 可选项有默认值
Accept = "text/html, application/xhtml+xml",// 可选项有默认值
ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值 &referer=index.php
//Post数据由于是GET所以没写
Allowautoredirect = false
};
//得到HTML代码
HttpResult result = http.GetHtml(item);
richTextBox1.Text += "Here Cookie:" + "\r\n" + result.Cookie + "\r\n\r\n";
richTextBox1.Text += "Here Html:" + "\r\n" + result.Html + "\r\n\r\n";
string tempCookie=result.Cookie;
try
{
http = new HttpHelper();
item = new HttpItem()
{
URL = "http://xxxxx/logging.php?action=login&inajax=1&loginsubmit=yes",//URL 必需项
Referer = "http://xxxxxx/index.php",
Method = "POST",//URL 可选项 默认为Get
Timeout = 3000,
//Timeout = 100000,//连接超时时间 可选项默认为100000
//ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
//IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = tempCookie,//前面得到的Cookie 可选项
UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",//用户的浏览器类型,版本,操作系统 可选项有默认值
Accept = "text/html, application/xhtml+xml",// 可选项有默认值
ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值 &referer=index.php
Postdata = "formhash=4c2d02b9&referer=&loginfield=username&username=***&password=***&questionid=0&answer=",//Post数据 可选项GET时不需要写
Allowautoredirect = false
};
result = http.GetHtml(item);
richTextBox1.Text += "Here Cookie:" + "\r\n" + result.Cookie + "\r\n\r\n";
richTextBox1.Text += "Here Html:" + "\r\n" + result.Html + "\r\n\r\n";
}
catch(Exception ex)
{
richTextBox1.Text += "Here ex:" + "\r\n" + ex.ToString()+ "\r\n\r\n";
}
[/code]
|
|