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>
