如何使用urlib2访问错误时的响应标头?

Mar*_*hes 1 python urllib2

我正在使用Harvest API(http://www.getharvest.com/api)。当客户超过其配额时,将返回503响应。在该响应中,应该有一个名为“ Retry-After”的标头,告诉我在重试之前要等待多长时间。

呼叫失败时如何访问响应头?我正在抓取HTTPError异常,但无法弄清楚如何从中获取标头。

我可以使用exception.read()获得响应主体,但这只是没有标题的主体。

一些相关的代码:

try:
    request = urllib2.Request( url=self.uri+url, headers=self.headers )
    r = urllib2.urlopen(request)
    xml = r.read()
    return parseString( xml )
except urllib2.HTTPError as err:
    logger.debug("EXCEPTION: %s" % err.read() )
Run Code Online (Sandbox Code Playgroud)

Uku*_*kit 6

尝试这个:

   logger.debug(err.headers)
Run Code Online (Sandbox Code Playgroud)

这是字典,因此使用 err.headers['Retry-After']