已经看过here、here和here但仍有问题。
我有一个POST data
看起来像这样:
{
"config":{
"param1": "param1 value",
"param2": "param2 value",
"param3": "param3 value"
},
"name": "Testing API",
"url": "https://testingapi.my.own.com",
"enabled": true
}
我有以下标题:
{
"Content-Type": "application/json",
"referer": "https://testingapi.my.own.com",
"X-CSRFToken": "my token value here"
}
如何为session.post
设置此格式
我一直在获取400
的响应代码,日志表明我没有在post
请求中发送所需的参数
代码如下:
headers = {"Content-Type": "application/json",
"referer": "https://testingapi.my.own.com",
"X-CSRFToken": "my token"
}
request_data = {
"config":{
"param1": "param1 value",
"param2": "param2 value",
"param3": "param3 value"
},
"name": "Testing API",
"url": "https://testingapi.my.own.com",
"enabled": "true"
}
#tried the following:
r = session.post(url, data = request_data, headers=headers)
r = session.post(url, json = json.dumps(request_data), headers=headers)
当您执行
data = request_data
时,您的嵌套字典不会像您预期的那样打包到请求正文中。尝试检查request
对象的body
属性:返回
当您
json = json.dumps(request_data)
时,json会将数据转储两次,因此服务器(在将数据取消序列化一次后)只会看到json字符串,而不会看到未序列化的dict(请参见requests docs)因此,您需要在将数据传递给
data
之前序列化数据或者正如Paul所建议的,使用
json
参数并将数据dict传递给它:相关问题 更多 >
编程相关推荐