paip.远程服务器返回错误 (417) Expectation Failed 的解决办法
作者Attilax , EMAIL:1466519819@qq.com
归纳其原因:
httpwebrequest控件有一个透明过程,先向服务方查询url是否存在而不发送POST的内容,服务器如果证实url是可访问的,才发送POST,早期的Apache就认为这是一种错误,而IIS
却可以正确应答
备注
当该属性设置为 true 时,使用 POST 方法的客户端请求应该从服务器收到 100-Continue 响应,以指示客户端应该发送要发布的数据。此机制使客户端能够在服务器根据请求报
头打算拒绝请求时,避免在网络上发送大量的数据
例如,假定 System.Net.Sockets.ServicePointManager.Expect100Continue 属性为 false。当请求发送到服务器时,它包括数据。如果在读取了请求报头后,服务器要求身份验
证并且必须发送 401 响应,则客户端必须用正确的身份验证报头重新发送数据。
如果该属性为 true,请求报头将发送到服务器。如果服务器没有拒绝请求,它将发送 100-
Continue 响应,指示可以传输数据。如果像前一个示例那样,服务器要求身份验证,它将发送 401 响应,而客户端不一定未传输数据。
解决方法:
-------------
写.net程序时在始化代码中,或者配置文件app.config之类的文件中
加下这么一句就可以了
ServicePointManager.Expect100Continue = false;
参考:
-----------
C# 模拟post数据提交时 出现如下错误 System.Net.WebException 远程服务器返回错误 (417) Expectation Failed 的解决办法 - aparche - 博客园
Expect100Continue_土豆爸爸_新浪博客.htm