Python urllib2:即使在HTTPError异常期间也读取内容体?

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

我正在使用urllib2通过HTTP获取一个页面。有时,当我的请求包含错误时,资源抛出HTTP错误400(错误请求)。但是,该响应还包含一个XML元素,该元素给出详细的错误消息。如果能够看到该错误,而不仅仅是urllib2返回的HTTPError异常,那将非常方便


如何在出现异常的情况下返回文档内容?

您可以将错误视为响应

当服务器出现错误时 通过返回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)