我正在使用urllib2通过超文本传输协议获取页面。有时,当我的请求包含错误时,资源会抛出HTTP错误400 (Bad Request)。但是,该响应还包含一个XML元素,该元素提供详细的错误消息。如果能够看到该错误,而不仅仅是urllib2返回的HTTPError异常,那将非常方便。
异常情况下如何退回单据内容?
发布于 2009-11-03 05:26:41
您可以将该错误视为响应。
http://www.voidspace.org.uk/python/articles/urllib2.shtml#httperror
当出现错误时,服务器通过返回错误代码和错误页来响应。您可以在返回的页面上使用HTTPError实例作为响应。这意味着除了代码属性之外,它还具有read、geturl和info方法。
发布于 2009-11-03 06:15:14
import urllib2
try:
request = urllib2.Request('http://www.somesite.com')
response = urllib2.urlopen(req)
except urllib2.HTTPError as e:
error_message = e.read()
print error_message发布于 2020-12-18 22:55:09
您可以read来自HTTPError异常的响应消息。
Python3示例
import urllib.request
try:
request = urllib.request.Request('http://httpstat.us/418', headers={'Accept': 'text/plain', 'User-Agent': ''})
with urllib.request.urlopen(request) as page:
print('success: ' + page.read().decode())
except urllib.error.HTTPError as httpError:
error = httpError.read().decode()
print('error: ' + error)https://stackoverflow.com/questions/1663790
复制相似问题