winform下试用get和post请大大们指教
这次和传统的post和get不同,通过输入已经注册的用户名和密码,进入网页抓取只有输入用户名和密码后才能查询的内容
网页同时还有个类似多选栏的,可以通过这个多选栏查询不同的内容,请问要如何实现 --------------------编程问答-------------------- 用webbrowser控件实现。要在DocumentCompleted事件中获取,然后做处理。 --------------------编程问答-------------------- 设置CookieContainer --------------------编程问答--------------------
试试吧 --------------------编程问答-------------------- webrequest登录
再抓取页面数据
或使用webbrower
CookieContainer myCookieContainer = new CookieContainer();
string cookieStr = webBrowser1.Document.Cookie;
string[] cookstr = cookieStr.Split( '; ');
foreach (string str in cookstr)
{
}
HttpWebRequest hreq=(HttpWebRequest)HttpWebRequest.Create("");
hreq.Method= "POST ";
hreq.ContentType= "application/x-www-form-urlencoded ";
hreq.CookieContainer= myCookieContainer; --------------------编程问答-------------------- 你要抓包的。。。
不管多选还是按钮,你只要知道他发什么请求即可(如果请求中包含加密字段,要看看是否变动,变动的话就放弃吧,这个很要精力的说)。。。
HTTP抓包工具许多,找下。 --------------------编程问答-------------------- 1、设置Cookie
2、Post页面(submit页面) --------------------编程问答-------------------- 不懂,帮顶下 --------------------编程问答-------------------- WINFORM下没有试过 关注下 --------------------编程问答-------------------- 自己抓包!
看POST什么数据!
大概POST的就这样吧!
private string GetHttpWebRequest(string url)
{
HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(url);
hwr.Headers.Add(HttpRequestHeader.Cookie, "登陆后的COOKIE");
hwr.Method = "post";
byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(Args.PostDataFormat);
hwr.ContentLength = requestBytes.Length;
System.IO.Stream sw = null;
HttpWebResponse hwrp = null;
try
{
sw = hwr.GetRequestStream();
sw.Write(requestBytes, 0, requestBytes.Length);
hwrp = (HttpWebResponse)hwr.GetResponse();
}
catch (Exception)
{
}
finally
{
if (sw != null)
{
sw.Close();
sw.Dispose();
}
}
System.IO.TextReader tr = new System.IO.StreamReader(hwrp.GetResponseStream());
return tr.ReadToEnd();
}
补充:.NET技术 , C#