请求Python中的POST JSON数据

请求Python中的POST JSON数据,python,python-requests,Python,Python Requests,我想在Python中使用请求生成POST数据 这是数据,实际上,我从Burp套件截取HTTP请求 sessionid=xxxsesi&serverid=1&partner=xxxpartner&tradeoffermessage=&json_tra deoffer={"newversion":true,"version":3,"me":{"assets": [{"appid":0,"contextid":"2","amount":1,"assetid":"xxxa

我想在Python中使用请求生成POST数据

这是数据,实际上,我从Burp套件截取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"}
但如果我尝试在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"}
}
有人能帮我吗?对不起,我的英语不好

与其他请求相比,Python中的post请求更加复杂

示例1:POST请求

示例2:POST请求

但在你的场景中

您使用burp套件获取python中的数据和发布数据我不知道您使用的是python的哪个特定版本,但您应该遵循python中发布请求的基本方法


下面是一个示例,它将一个接一个地解释您的每一步,并在您的场景中遵循该步骤的同时关注注释和TODO。

有效负载中的JSON应该是表单编码的。您拦截的请求格式不正确。请求可能会为您执行此操作,但serer实际上期望的是错误的版本。您可能必须手动构造有效负载数据,并将其作为字符串传递。可能是重复的。我了解python中的post数据请求,如果数据只是一些字符串或整数。示例:data=a&data2=bdatapost={'data':'a','data2':'b'}但如果post数据是json,我不知道如何编写它。你能解释一下写,怎么写吗?就这么简单。requests.postrl,headers=headers,data=data有很多次你想要发送的数据不是表单编码的。如果您传入一个字符串而不是dict,则该数据将直接过帐。
  >>> payload = {'key1': 'value1', 'key2': 'value2'}

>>> r = requests.post("http://httpbin.org/post", data=payload)
>>> print(r.text)
{
  ...
  "form": {
    "key2": "value2",
    "key1": "value1"
  },
  ...
}
>>> 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'}