我被要求从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错误字符串的方法?非常感谢您的耐心等待。之前的问题很快就结束了我从来没有机会看到答案,测试它并通过清理说明来重新询问。
答案 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
属性,返回相同的内容。两者都应该从响应中返回信息,而不是基于代码的固定字符串。