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

复制代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#中的HttpWebRequest是一个用于发送HTTP请求的类。它可以用于向Web服务器发送GET、POST、PUT、DELETE等请求,并获取服务器响应。以下是HttpWebRequest的用法: 1. 创建HttpWebRequest对象 使用HttpWebRequest.Create方法创建HttpWebRequest对象,如下所示: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 其中url是要请求的URL地址。 2. 设置请求方法 使用HttpWebRequest.Method属性设置请求方法,如下所示: request.Method = "GET"; 3. 设置请求头 使用HttpWebRequest.Headers属性设置请求头,如下所示: request.Headers.Add("User-Agent", "Mozilla/5.0"); 4. 设置请求参数 使用HttpWebRequest.GetRequestStream方法获取请求流,然后将请求参数写入请求流中,如下所示: using (Stream stream = request.GetRequestStream()) { byte[] data = Encoding.UTF8.GetBytes("param1=value1&param2=value2"); stream.Write(data, 0, data.Length); } 5. 发送请求并获取响应 使用HttpWebRequest.GetResponse方法发送请求并获取响应,如下所示: using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); string result = reader.ReadToEnd(); } } 其中result就是服务器响应的内容。 以上就是C#HttpWebRequest的用法。 ### 回答2: 我很抱歉,您没有提供问题或者主题,因此我无法提供相关的回答。请您给出更具体的问题或者主题,我会尽力为您提供满意的答案。感谢您的理解! ### 回答3: 抱歉,您没有提供问题或背景,无法提供回答。请提供问题或背景以获取更好的回答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值