首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回溯当我使用urllib2时,得到HTTP500错误

回溯当我使用urllib2时,得到HTTP500错误
EN

Stack Overflow用户
提问于 2012-12-24 19:29:35
回答 2查看 14.3K关注 0票数 1

我的代码如下所示,但是当它运行时会抛出一个错误。

代码语言:javascript
复制
search_request = urllib2.Request(url,data=tmp_file_name,headers={'X-Requested-With':'WoMenShi888XMLHttpRequestWin'})
#print search_request.get_method()
search_response = urllib2.urlopen(search_request)
html_data = search_response.read()

错误是:

代码语言:javascript
复制
Traceback (most recent call last):
  File "xx_tmp.py", line 83, in <module>
    print hello_lfi()
  File "xx_tmp.py", line 69, in hello_lfi
    search_response = urllib2.urlopen(search_request)
  File "D:\Python27\lib\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "D:\Python27\lib\urllib2.py", line 406, in open
    response = meth(req, response)
  File "D:\Python27\lib\urllib2.py", line 519, in http_response
    'http', request, response, code, msg, hdrs)
  File "D:\Python27\lib\urllib2.py", line 444, in error
    return self._call_chain(*args)
  File "D:\Python27\lib\urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "D:\Python27\lib\urllib2.py", line 527, in http_error_defau
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 500: Internal Server Error

我不知道该怎么修?我的意思是,当错误发生时,我的代码如何继续工作?

当我尝试使用

代码语言:javascript
复制
       try:
                search_response = urllib2.urlopen(search_request)
            except urllib2.HTTPError:
                pass

新错误

代码语言:javascript
复制
UnboundLocalError: local variable 'search_response' referenced before assignment

我使用

代码语言:javascript
复制
global search_response

并且有错误

代码语言:javascript
复制
NameError: global name 'search_response' is not defined
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-24 19:38:32

你可以捕获异常,这将防止你的程序如此“突然”地停止:

代码语言:javascript
复制
try:
  search_response = urllib2.urlopen(search_request)
except urllib2.HTTPError:
  print 'There was an error with the request'

如果您想继续,您可以简单地:

代码语言:javascript
复制
try:
  search_response = urllib2.urlopen(search_request)
except urllib2.HTTPError:
  pass

这将允许您的程序继续运行;但是您的另一条语句html_data = search_response.read()不会给出预期的结果。要永久地解决这个问题,您需要调试您的请求以了解其失败的原因;这并不是Python所特有的。

票数 1
EN

Stack Overflow用户

发布于 2013-11-27 10:17:56

当我试图向我的GAE Python服务器发送一个大型post请求时,我也遇到了同样的错误。结果是服务器抛出了这个错误,因为我试图将收到的POST字符串写入db.StringProperty()。我将其更改为db.TextProperty(),它不再抛出错误。

来源:Overcome appengine 500 byte string limit in python? consider text

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14020784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档