使用python请求库动态获取HTTP错误字符串

时间:2016-10-19 02:40:26

标签: python httprequest urllib2

我被要求从urllib2交换到请求库,因为这个库使用起来更简单,并且不会导致异常。

我可以使用response.status_code获取HTTP错误代码,但是我没有看到获取该代码的错误消息的方法。通常情况下,我不在乎,但我正在测试API,字符串也同样重要。

有人知道获取该字符串的简单方法吗?我期待2件像:

'400':'错误请求'

这不是一个重复的

返回的一些代码具有由我正在测试的应用程序发送的唯一字符串。使用此方法无法查找这些字符串:requests.status_codes._codes [error] [0]因为字符串是动态来自后端服务器的。我能够使用urllib使用此方法获取此信息:

import urllib2 ... opener = urllib2.build_opener(urllib2.HTTPSHandler(context=ctx)) except urllib2.HTTPError as err: try: error_message = err.read() ...

现在的问题是......是否有获取动态http错误字符串的方法?非常感谢您的耐心等待。之前的问题很快就结束了我从来没有机会看到答案,测试它并通过清理说明来重新询问。

2 个答案:

答案 0 :(得分:2)

response = requests.get(url)
error_message = response.reason

答案 1 :(得分:1)

HTTPResponse there's a reason attribute中,从响应的状态行返回原因短语。在the requests library the requests.Response class中有一个等效的reason属性,返回相同的内容。两者都应该从响应中返回信息,而不是基于代码的固定字符串。