Setting

> System.Net.ServicePointManager.Expect100Continue = false;

Doesn't work for me, I still get 417 errors?

On Dec 24, 9:31 pm, PockeTwitDev <[email protected]> wrote:
> After investigating further it appears this only occurs for .NET
> applications which post using form data instead of using URL
> parameters.  Here's a sample:
>
> HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
> request.Credentials = new NetworkCredential(AccountInfo.UserName,
> AccountInfo.Password);
> request.PreAuthenticate = true;
> request.ContentType = "application/x-www-form-urlencoded";
> request.Method = "POST";
> request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String
> (Encoding.ASCII.GetBytes(AccountInfo.UserName + ":" +
> AccountInfo.Password)));
> byte[] bytes = Encoding.UTF8.GetBytes(data); //Data is what's being
> posted
> request.ContentLength = bytes.Length;
> System.Net.ServicePointManager.Expect100Continue = false;   //NEED
> THIS NOW TO FIX ERROR 417
> using (Stream requestStream = request.GetRequestStream())
> {
>     requestStream.Write(bytes, 0, bytes.Length);
>     requestStream.Flush();}
>
>  using (HttpWebResponse response = (HttpWebResponse)request.GetResponse
> ())
> {
>     using (StreamReader reader = new StreamReader
> (response.GetResponseStream()))
>     {
>         return reader.ReadToEnd();
>     }
>
> }
>
> I don't doubt that it's a bug in the development platforms, but even
> so it's a pretty common one.  It doesn't appear to happen to those
> apps which just URLEncode the data and include it in the URL, but I
> don't think that's exactly proper specification either :)
>
> On Dec 24, 1:57 pm, Tom Morris <[email protected]> wrote:
>
> > On Dec 24, 4:31 am, JakeS <[email protected]> wrote:
>
> > > Looks like twitter is updating something and their servers are
> > > returning error 417 for a lot of requests.  I looked into it and found
> > > that .NET automatically includes an Expect header containing "100-
> > > continue" on every request unless you specifically tell it not to.
>
> > > So for any .NET devs having trouble, you can set
> > > System.Net.ServicePointManager.Expect100Continue = false before making
> > > your request to get past this issue.
>
> > A lot of libraries follow this behaviour. A Twitter app I wrote in PHP
> > a while back has been logging 417s most of today. I logged in and
> > added:
> > curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
>
> > Other libcurl-based libraries may be affected. There are plenty of
> > reports about 417 and Expect on the cURL website -http://curl.haxx.se/
> > - and on the websites of particular language bindings.
>
> > --
> > Tom Morris (@tommorris)
> > <http://tommorris.org>

Reply via email to