python - Python API 错误 - 'faultstring': 'JSONThreatProtection
问题描述
第一次尝试通过 API 提取数据。我对如何传递原始数据感到困惑。我已经能够让它在邮递员中工作,但我无法用 Python 搞清楚。
我一直收到这个错误:
{'fault': {'faultstring': 'JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting { or [ at line 1', 'detail': {'errorcode': 'steps.jsonthreatprotection.ExecutionFailed'}}}
我很确定它的数据部分是错误的,但我无法弄清楚它是否只是语法错误或我遗漏的更大的东西。
我的代码如下:
import requests
import json
url = "https://url/customers/shipmentstatus"
headers = {
"Authorization": "Bearer TOKEN",
"Content-Type": "application/json"
}
data = {
"Id": [
"AZ1234"
]
}
response = requests.post(url, headers=headers, data=data)
print(response.json())
解决方案
您的代码将数据发布为表单编码数据,而不是 JSON。那是因为您使用data
参数来提供有效负载。要修复,请使用以下命令将数据编码为 JSON json.dumps()
:
response = requests.post(url, headers=headers, data=json.dumps(data))
但更好的方法是使用参数将数据传递给请求json
:
response = requests.post(url, headers=headers, json=data)
使用该json
参数更容易,它还会Content-Type: application/json
为您添加标题。
推荐阅读
- c# - 如何使用 webview 在 xamarin 中下载文件?
- sql-server - Iterate through array of variables passing each one to a function in PowerShell
- javascript - 在 React 中单击链接时关闭下拉菜单的最佳做法是什么?
- node.js - 使用 ReactJS 删除项目
- phpunit - 是否可以从模拟方法返回模拟?
- powershell - 使用 powershell pnp 对文件夹的 Sharepoint 权限
- .htaccess - 哈希不可能的htaccess
- php - PHP 数组验证
- javascript - 在 json 中返回特定国家/地区的数组
- amazon-web-services - Symfony 和 AWS BS - .env 文件外控制台的环境变量