Skip to main content
 首页 » 编程设计

python之如何使用 urllib2 访问错误响应 header

2025年05月04日16三少

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

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

我可以使用 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() ) 

请您参考如下方法:

试试这个:

   logger.debug(err.headers) 

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