What is the best way to set expect100continue when using WebClient(C#.NET). I have this code below, I still see 100 continue in the header. Stupid apache still complains with 50
You need to set the Expect100Continue
property on the ServicePoint
used for the URI you're accessing:
var uri = new Uri("http://foo.bar.baz");
var servicePoint = ServicePointManager.FindServicePoint(uri);
servicePoint.Expect100Continue = false;
The only way to do this is to create an override.
public class ExpectContinueAware : System.Net.WebClient
{
protected override System.Net.WebRequest GetWebRequest(Uri address)
{
System.Net.WebRequest request = base.GetWebRequest(address);
if (request is System.Net.HttpWebRequest)
{
var hwr = request as System.Net.HttpWebRequest;
hwr.ServicePoint.Expect100Continue = false;
}
return request;
}
}
This works perfect.
Try to create the WebClient instanse after you change Expect100Continue to false. Or use a Webrequest
instead of a WebClient
One of my below approach also worked,
In my constructor of class (service calling), you can set System.Net.ServicePointManager.Expect100Continue = false;
and then I have created BasicHttpBinding object and continued, it executed successfully.