首页 > 解决方案 > 在 Python 中请求 POST JSON 数据

问题描述

我想用 Python 中的请求制作 POST 数据。

这是数据,实际上,我从 Burp Suite 中获取(拦截 HTTP 请求)。

sessionid=xxxsesi&serverid=1&partner=xxxpartner&tradeoffermessage=&json_tra
deoffer={"newversion":true,"version":3,"me":{"assets":
[{"appid":0,"contextid":"2","amount":1,"assetid":"xxxasset"}],"currency":
[],"ready":false},"them":{"assets":[],"currency":
[],"ready":"false"}}&captcha=&trade_offer_create_params=
{"trade_offer_access_token":"xxxtoken"}

但是,如果我尝试在请求 POST Python 中写入,它总是会失败。

data = {
"sessionid": "xxxsession",
"serverid": 1,
"partner":"xxxpartner",
"tradeoffermessage": "",
"json_tradeoffer": {"newversion":True,"version":3,"me":{"assets":[{"appid":440,"contextid":"2","amount":1,"assetid":"xxxasset"}],"currency":[],"ready":False},"them":{"assets":[],"currency":[],"ready":False}},
"captcha": "",
"trade_offer_create_params": {"trade_offer_access_token":"xxxtoken"}
}

有人能帮我吗?对不起,我的英语不好。

标签: pythonpython-requests

解决方案


Python中,post 请求比其他请求更复杂。但这里是 python 中 post 请求的解决方案。

示例#1:发布请求

  >>> payload = {'key1': 'value1', 'key2': 'value2'}

>>> r = requests.post("http://httpbin.org/post", data=payload)
>>> print(r.text)
{
  ...
  "form": {
    "key2": "value2",
    "key1": "value1"
  },
  ...
}

示例#2:发布请求

>>> import requests
>>> r = requests.post('http://httpbin.org/post', json={"key": "value"})
>>> r.status_code
200
>>> r.json()
{'args': {},
 'data': '{"key": "value"}',
 'files': {},
 'form': {},
 'headers': {'Accept': '*/*',
             'Accept-Encoding': 'gzip, deflate',
             'Connection': 'close',
             'Content-Length': '16',
             'Content-Type': 'application/json',
             'Host': 'httpbin.org',
             'User-Agent': 'python-requests/2.4.3 CPython/3.4.0',
             'X-Request-Id': 'xx-xx-xx'},
 'json': {'key': 'value'},
 'origin': 'x.x.x.x',
 'url': 'http://httpbin.org/post'}

但在您的场景中

您正在使用 burp 套件在 python 中获取数据和发布数据(我不知道您使用的是哪个特定版本的 python)但是您应该遵循 python 中发布请求的基本方法。如果您使用的是 brup 套件并且必须阅读brup 套件文档

这是文档链接,它将一步一步地向您解释每个步骤,并在执行步骤时(在您的场景中)密切关注注释和 TODO。


推荐阅读