我正在使用Python中的“requests”模块查询RESTful API端点。有时,端点会返回HTTP错误500。我知道可以使用requests.status_code获取状态码,但当我遇到500错误时,我想查看HTTP“响应文本”(我不确定它叫什么,下面是一些示例)。到目前为止,我已经能够使用response.headers获取一些标头。然而,我要寻找的信息还没有出现。
使用“curl -vvv”,我可以看到我需要的HTTP响应(为了清晰起见省略了一些输出):
注意到curl响应中包含"HTTP/1.1 200 OK",但requests.headers没有。 响应头中几乎所有其他内容都在那里。 requests.status_code给了我200。 在这个例子中,我只关心“OK”。 在其他情况下,我们的nginx服务器返回更详细的消息,例如“HTTP/1.1 500搜索不可用”或“HTTP/1.1 500参数错误”等。 我想得到这个文本。 有没有办法或者我可以用Popen和curl来黑一些东西?Requests.content和requests.text没有帮助。
使用“curl -vvv”,我可以看到我需要的HTTP响应(为了清晰起见省略了一些输出):
< HTTP/1.1 200 OK <---------------------this is what I'm after)
* Server nginx/1.4.1 is not blacklisted
< Server: nginx/1.4.1
< Date: Wed, 05 Feb 2014 16:13:25 GMT
< Content-Type: application/octet-stream
< Connection: close
< Set-Cookie: webapp.session.id="mYzk5NTc0MDZkYjcxZjU4NmM=|1391616805|f83c47a363194c1ae18e"; expires=Fri, 07 Mar 2014 16:13:25 GMT; Path=/
< Content-Disposition: attachment; filename = "download_2014161325.pdf"
< Cache-Control: public
这是从curl获取的信息。现在,当我使用Python的requests模块并请求headers时,我只会得到如下信息:
CaseInsensitiveDict(
{
'date': 'Tue, 04 Feb 2014 21:56:45 GMT',
'set-cookie': 'webapp.session.id="xODgzNThlODkzZ2U0ZTg=|1391551005|a11ca2ad11195351f636fef"; expires=Thu, 06 Mar 2014 21:56:45 GMT; Path=/,
'connection': 'close',
'content-type': 'application/json',
'server': 'nginx/1.4.1'
}
)
注意到curl响应中包含"HTTP/1.1 200 OK",但requests.headers没有。 响应头中几乎所有其他内容都在那里。 requests.status_code给了我200。 在这个例子中,我只关心“OK”。 在其他情况下,我们的nginx服务器返回更详细的消息,例如“HTTP/1.1 500搜索不可用”或“HTTP/1.1 500参数错误”等。 我想得到这个文本。 有没有办法或者我可以用Popen和curl来黑一些东西?Requests.content和requests.text没有帮助。