C# winfrom HttpWebRequest 請求獲取html網頁信息和提交信息


string result =GetRequest("http://localhost:32163/DuoBao/ajax.aspx", "time=5");     //如果有好幾個參數可以在后面加,如:   time=5&b=1&c=5

/// <summary>
        /// 獲得post請求后響應的數據
        /// </summary>
        /// <param name="postUrl">請求地址</param>
        /// <param name="data">請求帶的數據</param>
        /// <returns>響應內容</returns>

     public string GetRequest(string postUrl, string data)
         {
             string result = "";
             try
             {
                 //命名空間System.Net下的HttpWebRequest類
                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
                 //參照瀏覽器的請求報文 封裝需要的參數 這里參照ie9
                 //瀏覽器可接受的MIME類型
                 request.Accept = "text/plain, */*; q=0.01";
                 //包含一個URL,用戶從該URL代表的頁面出發訪問當前請求的頁面
                 //瀏覽器類型,如果Servlet返回的內容與瀏覽器類型有關則該值非常有用
                 request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)";
                 request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                 //請求方式
                 request.Method = "POST";
                 //是否保持常連接
                 request.KeepAlive = false;
                 request.Headers.Add("Accept-Encoding", "gzip, deflate");
                 //表示請求消息正文的長度
                 request.ContentLength = data.Length;
                 Stream postStream = request.GetRequestStream();
                 byte[] postData = Encoding.UTF8.GetBytes(data);
                 //將傳輸的數據,請求正文寫入請求流
                 postStream.Write(postData, 0, postData.Length);
                 postStream.Dispose();
                 //響應
                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                 //判斷響應的信息是否為壓縮信息 若為壓縮信息解壓后返回
                 if (response.ContentEncoding == "gzip")
                 {
                     MemoryStream ms = new MemoryStream();
                     GZipStream zip = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
                     byte[] buffer = new byte[1024];
                     int l = zip.Read(buffer, 0, buffer.Length);
                     while (l > 0)
                     {
                         ms.Write(buffer, 0, l);
                         l = zip.Read(buffer, 0, buffer.Length);
                     }
                     ms.Dispose();
                     zip.Dispose();
                     result = Encoding.UTF8.GetString(ms.ToArray());
                 }
                 return result;
             }
             catch (Exception)
             {
 
                 throw;
             }
         }

///請求的頁面

   public override void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            //接收參數
            string time = context.Request["time"];
         
            if (!string.IsNullOrEmpty(time))
            {
                 //調用方法
            }

 context.Response.Write("2");//返回參數
        }

來源  http://www.cnblogs.com/lyl6796910/p/3722280.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM