|
本帖最后由 yyhapy 于 2013-11-5 14:24 编辑
声明:我也是新手,纯粹来抛砖的~另外求助下,post过程中 winform窗体卡死 怎么一个解决思路呢?求@站长苏飞 指点指点。。
顺手就拿http://www.sufeinet.com 来测试,主要原因是没有验证码。。{:soso_e113:}
DZ抓包过程比较简单,post的数据也比较少,首先需要获取formhash,直接查看:http://www.sufeinet.com/member.php?mod=logging&action=login
用正则匹配 formhash = Regex.Match(result.Html, @"(?<=formhash=)\w+").Value;
[code=csharp]private void button1_Click(object sender, EventArgs e)
{
string formhash = "";
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "http://www.sufeinet.com/member.php?mod=logging&action=login",//URL 必需项
Encoding = System.Text.Encoding.GetEncoding("gbk"),//URL 可选项 默认为Get
Method = "get",//URL 可选项 默认为Get
Cookie = "",//字符串Cookie 可选项
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
ContentType = "text/html",//返回类型 可选项有默认值
};
HttpResult result = http.GetHtml(item);
string cookie = result.Cookie;
//提取formhash
formhash = Regex.Match(result.Html, @"(?<=formhash=)\w+").Value;
item=new HttpItem()
{
URL = "http://www.sufeinet.com/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=Ld7k8&inajax=1",//URL 必需项
Encoding = System.Text.Encoding.GetEncoding("gbk"),//URL 可选项 默认为Get
Method = "post",//URL 可选项 默认为Get
Cookie = result.Cookie;,//字符串Cookie 直接用第一次GET到的cookie
Referer = "http://www.sufeinet.com/member.php?mod=logging&action=login",//来源URL 可选项
Postdata = "formhash="+formhash+"&referer=http%3A%2F%2Fwww.sufeinet.com%2F.%2F&loginfield=username&username="+txtAccount.Text+"&password="+txtPassword.Text+"&questionid=0&answer=",//Post数据
Timeout = 100000,//连接超时时间 可选项默认为100000
ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT6.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值
};
result = http.GetHtml(item);
string html = result.Html;
cookie = result.Cookie;
richTextBox1.Text = html;
}[/code]
我加了个richTextBo来看显示结果,另外两个文本框来放账号密码。。
httphelper post 登录dz论坛
|
|