在我的应用程序中,我使用urllib2.urlopen()函数来调用api并从该api获取结果。但这不能正常工作。有时它显示结果,但有时它给出以下错误:DeadlineExceededError:ApplicationError:5使用urllib2.urlopen()函数中的5使用
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 700, in __call__
handler.get(*groups)
File "/base/data/home/apps/s~malware-app/7.351334968546050391/main.py", line 505, in get
f = urllib2.urlopen('http://whoapi.com/api-v1/?domain=%s&rtype=alexarank&apikey=xyz'% domain)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 124, in urlopen
return _opener.open(url, data)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 381, in open
response = self._open(req, data)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 399, in _open
'_open', req)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 360, in _call_chain
result = func(*args)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 1114, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 1087, in do_open
r = h.getresponse()
File "/base/python_runtime/python_dist/lib/python2.5/httplib.py", line 197, in getresponse
self._allow_truncated, self._follow_redirects)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/urlfetch.py", line 260, in fetch
return rpc.get_result()
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 592, in get_result
return self.__get_result_hook(self)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/urlfetch.py", line 364, in _get_fetch_result
raise DeadlineExceededError(str(err))
DeadlineExceededError: ApplicationError: 5
我看到try-except方法,但它为我的代码工作。 我的代码块:
try:
f = urllib2.urlopen('http://whoapi.com/api-v1/?domain=%s&rtype=serverip&apikey=xyzxyz'% domain)
ip = f.read()
except DeadlineExceededError, e:
self.redirect('/error')
我输入:
from google.appengine.runtime import DeadlineExceededError
从计算器我得到了它的bcause服务器没有在指定的时间内响应,我们可以处理异常..am但无法做到这一点。 任何帮助,将不胜感激。 感谢您的帮助
可能重复[无法处理使用UrlFetch时DeadlineExceededError](http://stackoverflow.com/questions/5738146/unable-to-handle-deadlineexceedederror-while-using-urlfetch) – geoffspear
请不要发送重定向一个错误 - 只是服务500错误,然后在那里。 –