当我尝试发布到URL时,将导致以下异常:



这是一个示例代码:

var client = new WebClient();

var postData = new NameValueCollection();
postData.Add("postParamName", "postParamValue");

byte[] responseBytes = client.UploadValues("http://...", postData);
string response = Encoding.UTF8.GetString(responseBytes); // (417) Expectation Failed.

使用HttpWebRequest/HttpWebResponse对或HttpClient并没有什么不同。

是什么导致此异常?

最佳答案

System.Net.HttpWebRequest向每个请求添加 header “HTTP header “期望:100-继续””,除非您通过将this static property设置为false明确要求不要这样做:

System.Net.ServicePointManager.Expect100Continue = false;

一些服务器在该 header 上阻塞,然后将您看到的417错误发送回去。

试一试。

关于c# - HTTP POST返回错误: 417 “Expectation Failed.” ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/566437/

10-10 16:52