HttpWebRequest的Method属性

嘎子 C# 2016-02-05 1,267 次浏览 , , , 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在代理时用处很大,分享一段代码

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

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

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

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

相关主题

说点什么

2 评论 在 "HttpWebRequest的Method属性"

提醒
avatar
排序:   最新 | 最旧 | 得票最多
奇虎分享网
游客

谢谢博主分享,很实用!

中土生活红宝书
游客

今天太晚了,只写到这里,其实还有一段关于TcpClient加代理的代码分享给大家,以后吧。

回顶部