C#:使用WebRequest類請求數據


本文翻譯於:https://msdn.microsoft.com/en-us/library/456dfw4f(v=vs.110).aspx

下列程序描述的步驟用於從服務器請求一個資源,例如,一個Web頁面或文件。必須由URI標識的資源。

從主機服務器請求數據:

1、創建一個WebRequest實例通過調用創建URI的資源。

  WebRequest request = WebRequest.Create("http://www.contoso.com/");

    note:

  .net 框架提供了特定於協議的類來自WebRequest和WebResponse uri以“http:”開始,“https:“,“ftp:”,“文件:”。使用其他協議來訪問資源,您必須實現特定於協議的類來自WebRequest WebResponse。有關更多信息,請參見編程可插協議。


2、設置在WebRequest任何你需要的屬性值。例如,要啟用身份驗證,設置憑證屬性NetworkCredential類的一個實例。

  request.Credentials = CredentialCache.DefaultCredentials;

  在大多數情況下,WebRequest類足以接收數據。然而,如果你需要設置特定於協議的特性,你必須把WebRequest特定於協議的類型。例如,訪問HTTP-specific HttpWebRequest的性質,把WebRequest HttpWebRequest參考。以下代碼示例展示了如何設置HTTP-specific UserAgent屬性。

  ((HttpWebRequest)request).UserAgent = ".NET Framework Example Client";

3、向服務器發送請求,調用GetResponse。返回的WebResponse對象的實際類型是由請求的URI的方案。

  WebResponse response = request.GetResponse();

  你完成了一個WebResponse對象后,您必須關閉它通過調用方法。或者,如果您得到的響應流響應對象,您可以關閉流通過調用流。關閉方法。如果你不關閉響應或流,您的應用程序可以運行的連接到服務器並成為無法處理其他請求。

4、您可以訪問的屬性WebResponse或鑄WebResponse讀特定於協議的特定於協議的實例屬性。例如,訪問HTTP-specific HttpWebResponse的性質,把WebResponse HttpWebResponse參考。以下代碼示例展示了如何顯示狀態信息發送響應。

  Console.WriteLine (((HttpWebResponse)response).StatusDescription);

5、得到包含響應由服務器發送的數據流,使用GetResponseStream WebResponse的方法。

  Stream dataStream = response.GetResponseStream ();

6、閱讀響應的數據之后,您必須使用流關閉響應流。關閉方法或關閉使用WebResponse響應。關閉方法。沒有必要調用關閉方法在響應流和WebResponse,但這樣做並不是有害的。WebResponse。比分接近的流。關閉時關閉響應。

  response.Close();

Demo:
 1 using System;
 2 using System.IO;
 3 using System.Net;
 4 using System.Text;
 5 
 6 namespace Examples.System.Net
 7 {
 8     public class WebRequestGetExample
 9     {
10         public static void Main ()
11         {
12             // Create a request for the URL. 
13             WebRequest request = WebRequest.Create (
14               "http://www.contoso.com/default.html");
15             // If required by the server, set the credentials.
16             request.Credentials = CredentialCache.DefaultCredentials;
17             // Get the response.
18             WebResponse response = request.GetResponse ();
19             // Display the status.
20             Console.WriteLine (((HttpWebResponse)response).StatusDescription);
21             // Get the stream containing content returned by the server.
22             Stream dataStream = response.GetResponseStream ();
23             // Open the stream using a StreamReader for easy access.
24             StreamReader reader = new StreamReader (dataStream);
25             // Read the content.
26             string responseFromServer = reader.ReadToEnd ();
27             // Display the content.
28             Console.WriteLine (responseFromServer);
29             // Clean up the streams and the response.
30             reader.Close ();
31             response.Close ();
32         }
33     }
34 }

 


免責聲明!

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



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