HttpWebRequest
automatically appends an Expect: 100-continue
header for POST requests. Various sources around the internet suggest that this can be disabled as follows:
System.Net.ServicePointManager.Expect100Continue = false;
However, I'm writing a library and I cannot disable this for the entire appdomain, in case the application relies on this behaviour. Nor can I assume that it will remain set to this value. How can I disable it for a specific request?
The client will expect to receive a 100-Continue response from the server to indicate that the client should send the data to be posted. This mechanism allows clients to avoid sending large amounts of data over the network when the server, based on the request headers, intends to reject the request.
HttpWebRequest automatically appends an Expect: 100-continue header for POST requests. Various sources around the internet suggest that this can be disabled as follows: System. Net.
The HttpWebRequest
class has a property called ServicePoint
which can be used to change this setting for a specific request. For example:
var req = (HttpWebRequest) WebRequest.Create(...); req.ServicePoint.Expect100Continue = false;
If you also need to set a proxy, make sure to do that first. Otherwise Expect100Continue will be reverted to true again. So:
HttpWebRequest webRequest = WebRequest.CreateHttp(_url); webRequest.Proxy = new WebProxy(_proxyHost, _proxyPort); webRequest.ServicePoint.Expect100Continue = false;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With