twitter Search API not working when server issued cookies present
There appears to be an issue with Twitter's Search API and cookies. The following yields no results found:
GET http://search.twitter.com/search.json?q=%23tweetz HTTP/1.1 Accept: */* Accept-Language: en-us Content-Type: application/x-www-form-urlencoded UA-CPU: AMD64 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E) Host: search.twitter.com Connection: Keep-Alive Cookie: k=68.40.12.103.1280961938551221; guest_id=128035711958013764; lang=en; _twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCJWulT8qASIKZmxhc2hJQzonQWN0aW9uQ29u %250AdHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADoHaWQiJWQ3%250AMWIxNzJlZmUzNThmM2Y1NGRkYzYwZTRjZmM1YmNh--0871d612503b63999c65c8c6abefb83f6bed9643 The response is: HTTP/1.0 200 OK Date: Thu, 05 Aug 2010 00:32:14 GMT Server: hi Status: 200 OK X-Served-From: sjc1r085 X-Runtime: 0.02556 Content-Type: application/json; charset=utf-8 X-Timeline-Cache-Hit: Hit X-Served-By: sjc1v012.prod.twitter.com Cache-Control: max-age=15, must-revalidate, max-age=300 Expires: Thu, 05 Aug 2010 00:37:14 GMT Content-Length: 251 Vary: Accept-Encoding X-Varnish: 2325786061 Age: 0 Via: 1.1 varnish X-Cache-Svr: sjc1v012.prod.twitter.com X-Cache: MISS Connection: close {"results":[],"max_id":20340216330,"since_id": 20294384707,"refresh_url":"?since_id=20340216330&q= %23tweetz","results_per_page":15,"page":1,"completed_in": 0.017987,"warning":"adjusted since_id to 20294384707 due to temporary error","query":"%23tw开发者_开发知识库eetz"}
If I issue the same request without the cookies (used Fiddler), the response contains matching tweets.
I can't remove the cookies since they're server issued (I'm running in a browser). Any thoughts?
This is because you logged into twitter in the same browser session. Because of that you received a cookie with a default language filter "lang=en"
The fix (or workaround, whatever you prefer) is to overrule the default filter with lang=all like: http://search.twitter.com/search.json?lang=all&q=%23tweetz
精彩评论