C# HTTP系列7 HttpWebRequest.Method屬性

HttpWebRequest.Method屬性,獲取或設置請求的方法。用於聯繫 Internet 資源的請求方法。 默認值爲 GET。html

System.Net 命名空間下提供了 WebRequestMethods 類,該類包含了 Http、File、Ftp 三個類。以下:web

 1 namespace System.Net
 2 {
 3   /// <summary>
 4   ///   容器類 <see cref="T:System.Net.WebRequestMethods.Ftp" />, 
/// <see cref="T:System.Net.WebRequestMethods.File" />, 5 ///<see cref="T:System.Net.WebRequestMethods.Http" /> 類。 6 /// 沒法繼承此類 7 /// </summary> 8 public static class WebRequestMethods 9 { 10 /// <summary>表示可用於 HTTP 請求的 HTTP 協議方法的類型。</summary> 11 public static class Http 12 { 13 /// <summary>表明 HTTP GET 協議方法 </summary> 14 public const string Get = "GET"; 15 16 /// <summary>表示與一個代理,它能夠動態切換到隧道,以下所示的 SSL 隧道的狀況下使用的 HTTP 鏈接協議方法。</summary> 17 public const string Connect = "CONNECT"; 18 19 /// <summary> 20 /// 表示 HTTP Head 協議方法。 21 /// HEAD 方法等同於 GET 只是服務器僅在響應中,但不包括消息正文中返回消息頭。 22 /// </summary> 23 public const string Head = "HEAD"; 24 25 /// <summary>表示用來替換實體由 URI 標識的 HTTP PUT 協議方法。</summary> 26 public const string Put = "PUT"; 27 28 /// <summary>表示用於將新實體添加做爲發佈到的 URI 的 HTTP POST 協議方法。</summary> 29 public const string Post = "POST"; 30 31 /// <summary> 32 /// 表示在由請求統一資源標識符 (URI) 指定的位置建立一個新集合 (如頁的集合) 的 HTTP MKCOL 請求。 33 /// </summary> 34 public const string MkCol = "MKCOL"; 35 } 36 37 /// <summary> 38 /// 表示文件可用於文件請求的協議方法的類型。 39 /// 此類不能被繼承。 40 /// </summary> 41 public static class File 42 { 43 /// <summary>表示用於從指定位置檢索文件的文件時,變協議方法。</summary> 44 public const string DownloadFile = "GET"; 45 46 /// <summary>表示用於將文件複製到指定位置的文件將放協議方法。</summary> 47 public const string UploadFile = "PUT"; 48 } 49 50 /// <summary> 51 /// 表示可與一個 FTP 請求使用的 FTP 協議方法的類型。 52 /// 此類不能被繼承。 53 /// </summary> 54 public static class Ftp 55 { 56 /// <summary>表示用於從 FTP 服務器下載文件的 FTP RETR 協議方法。</summary> 57 public const string DownloadFile = "RETR"; 58 59 /// <summary>表明獲取 FTP 服務器上的文件的簡短列表的 FTP NLIST 協議方法。</summary> 60 public const string ListDirectory = "NLST"; 61 62 /// <summary>表示將文件上載到 FTP 服務器的 FTP STOR 協議方法。</summary> 63 public const string UploadFile = "STOR"; 64 65 /// <summary>表示用於刪除 FTP 服務器上的文件的 FTP DELE 協議方法。</summary> 66 public const string DeleteFile = "DELE"; 67 68 /// <summary>表示用於將文件附加到 FTP 服務器上的現有文件的 FTP APPE 協議方法。</summary> 69 public const string AppendFile = "APPE"; 70 71 /// <summary>表示用於檢索 FTP 服務器上的文件的大小的 FTP SIZE 協議方法。</summary> 72 public const string GetFileSize = "SIZE"; 73 74 /// <summary>表示將具備惟一名稱的文件上載到 FTP 服務器的 FTP STOU 協議。</summary> 75 public const string UploadFileWithUniqueName = "STOU"; 76 77 /// <summary>表示 FTP MKD 協議方法在 FTP 服務器上建立一個目錄。</summary> 78 public const string MakeDirectory = "MKD"; 79 80 /// <summary>表明刪除目錄的 FTP RMD 協議方法。</summary> 81 public const string RemoveDirectory = "RMD"; 82 83 /// <summary>表明獲取 FTP 服務器上的文件的詳細的列表的 FTP LIST 協議方法。</summary> 84 public const string ListDirectoryDetails = "LIST"; 85 86 /// <summary>表示要用於從 FTP 服務器上的文件檢索日期時間戳的 FTP MDTM 協議方法。</summary> 87 public const string GetDateTimestamp = "MDTM"; 88 89 /// <summary>表明打印當前工做目錄的名稱的 FTP PWD 協議方法。</summary> 90 public const string PrintWorkingDirectory = "PWD"; 91 92 /// <summary>表示重命名一個目錄的 FTP RENAME 協議方法。</summary> 93 public const string Rename = "RENAME"; 94 }

其中 Http 類,表示可與 HTTP 請求一塊兒使用的 HTTP 協議方法的類型
api

Connect

表示與代理一塊兒使用的 HTTP CONNECT 協議方法,該代理能夠動態切換到隧道,如 SSL 隧道的狀況。服務器

Get

表示一個 HTTP GET 協議方法。app

Head

表示一個 HTTP HEAD 協議方法。 除了服務器在響應中只返回消息頭不返回消息體之外,HEAD 方法和 GET 是同樣的。post

MkCol

表示一個 HTTP MKCOL 請求,該請求在請求 URI(統一資源標識符)指定的位置新建集合,如頁的集合。url

Post

表示一個 HTTP POST 協議方法,該方法用於將新實體做爲補充發送到某個 URI。spa

Put

表示一個 HTTP PUT 協議方法,該方法用於替換 URI 標識的實體。.net

若是 ContentLength 屬性設置爲-1之外的任何值,則必須將 Method 屬性設置爲上載數據的協議屬性。 代理

 下面的代碼示例設置Method屬性設置爲 POST。

 1 // 設置爲 'POST' 方式
 2 myHttpWebRequest.Method = "POST";
 3 Console.WriteLine ("\n請輸入要發佈到的數據 (http://www.contoso.com/codesnippets/next.asp) Uri :");
 4 
 5 // 建立新的字符串對象以將數據發佈到URL。
 6 string inputData = Console.ReadLine ();
 7 
 8 
 9 string postData = "firstone=" + inputData;
10 ASCIIEncoding encoding = new ASCIIEncoding ();
11 byte[] byte1 = encoding.GetBytes (postData);
12 
13 // 設置要發佈的數據的內容類型。
14 myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
15 
16 // 設置要發佈的字符串的內容長度。
17 myHttpWebRequest.ContentLength = byte1.Length;
18 
19 Stream newStream = myHttpWebRequest.GetRequestStream ();
20 
21 newStream.Write (byte1, 0, byte1.Length);
22 Console.WriteLine ("發送數據後「ContentLength」屬性的值爲 {0}", myHttpWebRequest.ContentLength);
23 
24 // 關閉流對象。
25 newStream.Close ();

 

相關文章
相關標籤/搜索