500服务器错误发送到Twitter API的请求时
问题描述:
我发送以下请求到Twitter API,它是得到以下错误:500服务器错误发送到Twitter API的请求时
http://search.twitter.com/search.json?q=feel%2BOR%2Bi%27m%2BOR%2Bi+am%2BOR%2Bim%2BOR%2Bmakes+me%2BOR%2Bmade+me%2BOR%2Bmaking+me%2BOR%2Bmaking+me+feel%2BOR%2Bmy+mood%2BOR%2Bi%27m+so%2BOR%2Bim+so&rpp=99&page=14
Traceback (most recent call last):
File "C:\Users\andrew\Downloads\twitterthingv5test.py", line 95, in <module>
moodParser()
File "C:\Users\andrew\Downloads\twitterthingv5test.py", line 93, in moodParser
query()
File "C:\Users\andrew\Downloads\twitterthingv5test.py", line 37, in query
main(columns)
File "C:\Users\andrew\Downloads\twitterthingv5test.py", line 52, in main
response = urllib2.urlopen(twiturl)
File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 400, in open
response = meth(req, response)
File "C:\Python27\lib\urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python27\lib\urllib2.py", line 438, in error
return self._call_chain(*args)
File "C:\Python27\lib\urllib2.py", line 372, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 500: Internal Server Error
我使用生成URL的代码是这样的:
twiturl = "http://search.twitter.com/search.json?q=" + urlinfo + "&rpp=99&page=14"
发生了什么事?这是否会成为一次发送太多请求的实例?
答
它在第一次尝试时对我也一样,所以它可能不是速率限制。一再缩短查询:
- http://search.twitter.com/search.json?q=feel%2BOR%2Bi%27m%2BOR%2Bi+am%2BOR%2Bim%2BOR%2Bmakes+me%2BOR%2Bmade+me%2BOR%2Bmaking+me%2BOR%2Bmaking+me+feel%2BOR%2Bmy+mood%2BOR%2Bi%27m+so%2BOR%2Bim+so&rpp=99&page=14失败
- http://search.twitter.com/search.json?q=feel%2BOR%2Bi%27m%2BOR%2Bi+am%2BOR%2Bim%2BOR%2Bmakes+me%2BOR%2Bmade+me%2BOR%2Bmaking+me%2BOR%2Bmaking+me+feel%2BOR%2Bmy+mood%2BOR%2Bi%27m+so&rpp=99&page=14失败
- http://search.twitter.com/search.json?q=feel%2BOR%2Bi%27m%2BOR%2Bi+am%2BOR%2Bim%2BOR%2Bmakes+me%2BOR%2Bmade+me%2BOR%2Bmaking+me%2BOR%2Bmaking+me+feel%2BOR%2Bmy+mood&rpp=99&page=14失败
- http://search.twitter.com/search.json?q=feel%2BOR%2Bi%27m%2BOR%2Bi+am%2BOR%2Bim%2BOR%2Bmakes+me%2BOR%2Bmade+me%2BOR%2Bmaking+me%2BOR%2Bmaking+me+feel&rpp=99&page=14成功
这让我觉得这是对查询长度的限制。添加封信,直到它再次失败,这是一部分的方式,通过字mood
:
然而,260个字符的查询字符串成功:
该docs say a布特q
参数:
A UTF-8, URL-encoded search query of 1,000 characters maximum, including operators. Queries may additionally be limited by complexity.
这很奇怪的是中途切割字算作额外的复杂性,但你去那里。
所以它似乎是基于复杂性来阻止它。 – 2012-07-25 21:50:54
Hrm。好的,我必须解决这个问题。 – 2012-07-25 21:51:30