C# HTTP系列7 HttpWebRequest.Method屬性


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

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

 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 協議方法的類型

Connect

表示與代理一起使用的 HTTP CONNECT 協議方法,該代理可以動態切換到隧道,如 SSL 隧道的情況。

Get

表示一個 HTTP GET 協議方法。

Head

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

MkCol

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

Post

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

Put

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

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

 


免責聲明!

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



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