Python urllib2:即使在HTTPError异常期间也读取内容体?
我正在使用urllib2通过HTTP获取一个页面。有时,当我的请求包含错误时,资源抛出HTTP错误400(错误请求)。但是,该响应还包含一个XML元素,该元素给出详细的错误消息。如果能够看到该错误,而不仅仅是urllib2返回的HTTPError异常,那将非常方便Python urllib2:即使在HTTPError异常期间也读取内容体?,python,Python,我正在使用urllib2通过HTTP获取一个页面。有时,当我的请求包含错误时,资源抛出HTTP错误400(错误请求)。但是,该响应还包含一个XML元素,该元素给出详细的错误消息。如果能够看到该错误,而不仅仅是urllib2返回的HTTPError异常,那将非常方便 如何在出现异常的情况下返回文档内容?您可以将错误视为响应 当服务器出现错误时 通过返回HTTP错误进行响应 代码和错误页。你可以用 HTTPError实例作为响应 在返回的页面上。这意味着 除了code属性之外,它还 具有读取、获取
如何在出现异常的情况下返回文档内容?您可以将错误视为响应 当服务器出现错误时 通过返回HTTP错误进行响应 代码和错误页。你可以用 HTTPError实例作为响应 在返回的页面上。这意味着 除了code属性之外,它还 具有读取、获取URL和信息、方法
您可以从HTTPError异常读取响应消息 Python 3示例
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)
看见
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)