1. 程式人生 > >C#中如何通過HTTP協議的不同請求方式獲取資料

C#中如何通過HTTP協議的不同請求方式獲取資料

private string GetRequest(string url)

        {

           string content = "";

           Uri httpURL = new Uri(url);

           ///HttpWebRequest類繼承於WebRequest,並沒有自己的建構函式,需通過WebRequestCreat方法建立,並進行強制的型別轉換

            HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL);

            httpReq.Credentials = new

 NetworkCredential("***""****");

           ///通過HttpWebRequestGetResponse()方法建立HttpWebResponse,強制型別轉換

            HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();

           ///GetResponseStream()方法獲取HTTP響應的資料流,並嘗試取得URL中所指定的網頁內容

            ///若成功取得網頁的內容,則以System.IO.Stream形式返回,若失敗則產生ProtoclViolationException

誤。在此正確的做法應將以下的程式碼放到一個try塊中處理。這裡簡單處理

            Stream respStream = httpResp.GetResponseStream();

           ///返回的內容是Stream形式的,所以可以利用StreamReader類獲取GetResponseStream的內容,並以

            //StreamReader類的Read方法依次讀取網頁源程式程式碼每一行的內容,直至行尾(讀取的編碼格式:UTF8

            StreamReader respStreamReader = new StreamReader

(respStream, Encoding.UTF8);

            content = respStreamReader.ReadToEnd();

           return content;

        }

       public string PostRequest(string Paras, string Url)

        {

           string result = "";

           HttpWebRequest request = WebRequest.Create(Url) as HttpWebRequest;

            request.Method = "POST";

            request.ContentType = "application/json";

           httpReq.Credentials = new NetworkCredential("***""****");

           string data = Paras;

           byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());

            request.ContentLength = byteData.Length;

           using (Stream postStream = request.GetRequestStream())

            {

                postStream.Write(byteData, 0, byteData.Length);

            }

           using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)

            {

               StreamReader reader = new StreamReader(response.GetResponseStream());

                result = reader.ReadToEnd();

            }

           return result;

        }

       public string DeleteRequest(string Url)

        {

           HttpWebRequest myrequest = (HttpWebRequest)WebRequest.Create(Url);

            myrequest.Method = "DELETE";

            httpReq.Credentials = new NetworkCredential("***""****");

           HttpWebResponse myResponse = (HttpWebResponse)myrequest.GetResponse();

           StreamReader reader = new StreamReader(myResponse.GetResponseStream(),Encoding.UTF8);

           string Return = reader.ReadToEnd();

            reader.Close();

           return Return;

        }