Twitter 的搜索 API 和 cookie 似乎存在问题。这 以下未找到任何结果:
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":"%23tweetz"}
如果我在没有 cookie 的情况下发出相同的请求(使用 Fiddler),则响应包含匹配的推文。
我无法删除cookie,因为它们是服务器发布的(我正在运行 浏览器)。有什么想法吗?
最佳答案
这是因为您在同一浏览器 session 中登录了 Twitter。 因此,您收到了一个带有默认语言过滤器“lang=en”的 cookie
修复(或解决方法,无论您喜欢什么)是使用 lang=all 否决默认过滤器,例如: http://search.twitter.com/search.json?lang=all&q=%23tweetz
关于当服务器发出 cookie 时,twitter 搜索 API 无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3410973/