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 ();
成在管理,败在经验;嬴在选择,输在不学! 贵在坚持!
个人作品
BIMFace.SDK.NET
开源地址:https://gitee.com/NAlps/BIMFace.SDK
系列博客:https://www.cnblogs.com/SavionZhang/p/11424431.html
系列视频:https://www.cnblogs.com/SavionZhang/p/14258393.html
技术栈
1、Visual Studio、.NET Core/.NET、MVC、Web API、RESTful API、gRPC、SignalR、Java、Python
2、jQuery、Vue.js、Bootstrap、ElementUI
3、数据库:分库分表、读写分离、SQLServer、MySQL、PostgreSQL、Redis、MongoDB、ElasticSearch、达梦DM
4、架构:DDD、ABP、SpringBoot、jFinal
5、环境:跨平台、Windows、Linux、Nginx
6、移动App:Android、IOS、HarmonyOS、微信小程序、钉钉、uni-app、MAUI
分布式、高并发、云原生、微服务、Docker、CI/CD、DevOps、K8S;Dapr、RabbitMQ、Kafka、RPC、Elasticsearch。
欢迎关注作者头条号 张传宁IT讲堂,获取更多IT文章、视频等优质内容。
出处:www.cnblogs.com/SavionZhang
作者:张传宁 技术顾问、培训讲师、微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。
专注于企业级通用开发平台、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。
多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。
熟悉中小企业软件开发过程:可行调研、需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业实现互联网转型升级全流程解决方案。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如有问题,可以通过邮件905442693@qq.com联系。共同交流、互相学习。
如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!