【发布时间】:2019-10-08 22:00:36
【问题描述】:
我可以用 curl 运行这个 curl 语句并且运行良好。我已经阅读了很多帖子,但没有任何效果。
curl -X POST "http://some.website.com" -H "accept: application/json" -H "authorization: Basic authcode" -H "Content-Type: application/json" -d "{ \"Fields\": [ \"string\" ], \"Filters\": [ { \"Field\": \"Item\", \"Operator\": \"=\", \"Value\": \"119001\" } ], \"PageSize\": 0, \"PageNumber\": 0}"
到目前为止尝试过的代码
import requests
session = requests.Session()
url = 'http://some.website.com'
headers = {'accept': 'application/json', 'authorization': 'Basic authcode', 'Content-Type': 'application/json'}
data = {'Fields': 'string', 'Filters': { 'Field': 'Item', 'Operator': '=', 'Value': '119001' }, 'PageSize': 0, 'PageNumber': 0}
response = session.post(url, headers=headers, data=data)
print(response.status_code)
print(response.json())
错误 = 无效的 JSON 值
我也试过
import simplejson as json
# ...
# ...
response = session.post(url, headers=headers, data=json.dumps(data))
# ...
# ...
失败 = 检测 JSON 字段时出错
我认为这与嵌套的dict语句有关
【问题讨论】:
-
您能否在此处添加完整的错误日志。这将有助于发现问题。
-
你可以在curl.trillworks.com上转换它
-
如果您必须发送 json,那么您可以使用
post( ..., json=data)而不是post(..., data=json.dumps(data))。它应该自动添加标题'Content-Type': 'application/json'
标签: python api curl post request