HttpWebRequest的Method属性

嘎子 C# 2016-02-05 2,038 次浏览 , , , 2条评论

HttpWebRequest的Method属性可能是HttpWebRequst中最不起眼的一个,MSDN上的解释有用的也只有两句Gets or sets the method for the request(获得或设置请求的方法).The Method property can be set to any of the HTTP 1.1 protocol verbs: GET, HEAD, POST, PUT, DELETE, TRACE, or OPTIONS.(这个发生可以设置为任意HTTP 1.1的协议名词GET, HEAD, POST, PUT, DELETE, TRACE, 或者OPTIONS。但有趣的是微软并没有列举HTTP 1.1 protocol verbs中所有的方法,根据W3C的说明https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html,还有一个没有列举:CONNECT。

这个属性我们最常用的是Get、Put和Post(Get为默认值),我就不多说了,大家不明白的可以查其他资料,其他4个我也没有用过,不明白,今天就说说这个CONNECT.

先给一个官方的解释:

This specification reserves the method name CONNECT for use with a proxy that can dynamically switch to being a tunnel (e.g. SSL tunneling [44]).后面引言的文章也很幸运的让我找到了,不过具体的我也没有看,作为附件分享给大家。

draft-luotonen-web-proxy-tunneling-01

只说明一个问题,这个CONNECT在代理时用处很大,分享一段代码

  这段代码引自https://tson.com/csharp-nist-time/,作用时获取网络时间,在连接网络时使用了代理。如果将HttpWebRequest的Method设为其他时为抛出Exception。System.Net.WebException: 服务器提交了协议冲突. Section=ResponseStatusLine。使用了网上所有的方法用此进行修复都不起作用,只能设置为CONNECT

原创文章,文章首发于:Riley Ge (@rileyge) — Steemit

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: HttpWebRequest的Method属性

相关主题

2
说点什么

avatar
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
奇虎分享网中土生活红宝书 Recent comment authors
  Subscribe  
最新 最旧 得票最多
提醒
奇虎分享网
游客

谢谢博主分享,很实用!

回顶部