aspx页面内容
[HTML] 纯文本查看 复制代码 <body>
<form id="form1" runat="server">
<img runat="server" id="yzmimg"/>
<asp:TextBox runat="server" ID="txt"></asp:TextBox>
<asp:Button runat="server" ID="Btn_sub" OnClick="Btn_sub_Click" />
<input type="hidden" id="hid_sessionid" runat="server" />
</form>
</body>
cs代码
[C#] 纯文本查看 复制代码 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpItem item1 = new HttpItem()
{
URL = "https://www.sgs.gov.cn/notice/home",
Method = "get",//URL 可选项 默认为Get
ResultType = ResultType.Byte
};
HttpResult result1 = http.GetHtml(item1);
string ds= result1.Html;
string str1= ds.Substring(ds.IndexOf("code")+5) ;
str1= str1.Substring(0,str1.IndexOf(','));
hid_sessionid.Value = str1.Replace("\"", "").Trim();//得到session.token的值
HttpItem item = new HttpItem()
{
URL = "https://www.sgs.gov.cn/notice/captcha",
Method = "get",//URL 可选项 默认为Get
ResultType = ResultType.Byte
};
HttpResult result = http.GetHtml(item);
System.IO.File.WriteAllBytes(Server.MapPath("yzm.png"), result.ResultByte); //下载验证码图片
yzmimg.Src = "yzm.png";
Session["tmp"] = result1;
}
}
protected void Btn_sub_Click(object sender, EventArgs e)
{
//创建Httphelper参数对象
HttpResult sub = Session["tmp"] as HttpResult;
HttpItem item = new HttpItem()
{
URL = "https://www.sgs.gov.cn/notice/search/ent_info_list",//URL 必需项
Referer = "https://www.sgs.gov.cn/notice/home",
Method = "post",//URL 可选项 默认为Get
ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值
Postdata = "searchType=1&captcha=" + HttpUtility.UrlEncode(txt.Text) + "&session.token=" + hid_sessionid.Value + "&condition.keyword=%E5%AE%9D%E4%BF%A1",
UserAgent="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
//Post要发送的数据,txt.Text手动输的验证码
Cookie = sub.Cookie.Replace("; Path=/", ""),
};
//请求的返回值对象
HttpResult result = http.GetHtml(item);
//获取请请求的Html
string html = result.Html;
//获取请求的Cookie
}
得到的是错误页,请点击里面的页面链接看一看,已经搞了两天,没搞定,请帮我看看,万分感谢 |