Lib Curl, Twitter API & "Expect: 100-continue" PAIN and How To Fix it
shoemoney
·
·
2 min read
*this post will probably not be worthwhile for 99% of the normal shoemoney.com readers. But for those having the same issue it will be priceless.*
I have been working on a new twitter app for a couple months and at approximately 5pm on December 23rd 2008 (3 days ago) it all went boom.
All of my php curl (lib curl) requests started returning:
HTTP/1.1 417 Expectation Failed
and the exact html returned is:
<html><head> <title>417 Expectation Failed</title> </head><body> <h1>Expectation Failed</h1> <p>The expectation given in the Expect request-header field could not be met by this server.</p> <p>The client sent<pre> Expect: 100-continue </pre> but we only allow the 100-continue expectation.</p> </body></html>It appears Twitter started being super anal about requests being sent and in particular the http/1.1 RFC post requests. Anyway it took be a long time searching the web and trying various things until I figured out the solution by looking at some of the lib curl compilation files. Just add: curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); and you will be fixed!