When I try to POST to a URL it results in the following exception:
The remote server returned an error: (417) Expectation Failed.
Here’s a sample code:
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.
Using an HttpWebRequest/HttpWebResponse pair or an HttpClient doesn’t make a difference.
What’s causing this exception?
System.Net.HttpWebRequest adds the header ‘HTTP header ‘Expect: 100-Continue” to every request unless you explicitly ask it not to by setting this static property to false:
Some servers choke on that header and send back the 417 error you’re seeing.
Give that a shot.