python - 在 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"}
}
有人能帮我吗?对不起,我的英语不好。
解决方案
在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。
推荐阅读
- javascript - How does a prepending plus sign treat new Date?
- node.js - Cloud Functions - 根据警告更新时间戳
- kubernetes - 如何识别持久卷声明中剩余的存储空间?
- javascript - 需要将数组推送到对象
- azure-digital-twins - 如何获取 Azure Digital Twin Swagger 的 client_id 和 client_secret?
- python - 如何将图像输入模型 Keras
- python - spark中的Windows文件读取csv
- reactjs - React“obj”在调度时是只读的
- python - 套接字连接被拒绝:telnet:无法连接到远程主机:连接被拒绝
- apache-flink - Apache Flink:如何处理三个流