当前位置:编程学习 > C#/ASP.NET >>

winform下试用get和post请大大们指教


    这次和传统的post和get不同,通过输入已经注册的用户名和密码,进入网页抓取只有输入用户名和密码后才能查询的内容

    网页同时还有个类似多选栏的,可以通过这个多选栏查询不同的内容,请问要如何实现 --------------------编程问答-------------------- 用webbrowser控件实现。要在DocumentCompleted事件中获取,然后做处理。 --------------------编程问答-------------------- 设置CookieContainer --------------------编程问答--------------------
引用 1 楼 computerfox 的回复:
用webbrowser控件实现。要在DocumentCompleted事件中获取,然后做处理。

试试吧 --------------------编程问答-------------------- 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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,