如何在发送POST请求之前显示正文和标题?

时间:2017-12-05 22:53:04

标签: python python-2.7 python-requests

我使用了库requests

import requests

r = requests.post(url=url, data=data, headers=headers, auth=(self.api_key, ''))

如何在发送POST请求之前显示正文和标题?或显示完整的请求如何发送?

因为服务器返回带有错误请求消息的400 HTTP。所以我需要看看发送的内容。

当我这样做时:

print r.request.body

它返回:

subcategory_id=1378&category_id=45&features=id&features=value&features=id&features=value&features=id&features=value&offer_type=18979

但身体是:

data = {
            'category_id': category_id,
            'subcategory_id': subcategory_id,
            'offer_type': offer_type,
            'features': [
                {"id": "7", "value": "12900"},
                {"id": "12", "value": "Title adadadadasdasdadad"},
                {"id": "16", "value": ["3360383821"]}
          ]
        }

怎么可能?

3 个答案:

答案 0 :(得分:1)

r.request是您需要的相应Request对象。

import requests

r = requests.post(url=url, data=data, headers=headers, auth=(self.api_key, ''))
print r.request.headers
print r.request.body

你得到答案后就能做到,一切都会在那里。请参阅PreparedRequest

对于您编辑过的问题,请使用requests.post(url=url, json=data, ...)

答案 1 :(得分:0)

r.url
r.headers
r.body

应该在终端中工作,可能必须在脚本中打印

您也不需要" url = url",您可以将其保留为" url",假设您已存储的位置您尝试发布的基础。

答案 2 :(得分:0)

您可以使用门户网站httpbin.org进行测试。它会发回所有数据。