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 ();