2017-10-13 79 views
1

如何使用Python requests库来访问错误流?例如,在Java中使用HttpURLConnection,我会做这样的事情:如何使用Python请求库获取HTTP错误流?

InputStream errorStream = conn.getErrorStream(); 

有这样与requests的功能?
我正在寻找由源提供的响应中的错误消息,而不是错误状态,例如内部服务器错误

+0

您是指响应的正文内容? –

+0

那么,在调用'getInputStream'(获取响应内容)的Java中,如果响应代码是错误响应,则会引发异常。在这种情况下,你必须调用'getErrorStream'。你是说'请求'对待他们都一样吗?所以调用'response.text'会给我什么可用的? – RTF

+0

好吧,试试吧。 –

回答

1

requests如果发生HTTP错误,则不会引发异常,但您可以在响应内容中获取错误消息。示例:

url = 'https://stackoverflow.com/does_not_exist' 
r = requests.get(url) 
print(r.status_code, r.reason) 
print(r.text) 
+0

我一般误解了HTTP响应。我认为错误响应是在原始响应的一个单独部分中设置的,但大概是我发布的Java示例强制您调用'getErrorStream'来确保您知道您正在检索错误响应,以防止意外调用getInputStream思维你的回应很好。 – RTF

+1

如果你想使用['raise_for_status()'](http://docs.python-requests.org/en/master/user/quickstart/#response-status-codes)来引发'HTTPError'异常, –

相关问题