【发布时间】:2018-12-26 21:37:10
【问题描述】:
我正在尝试使用 python 请求执行 curl 命令。据我所知,我所做的一切都是正确的,但无论我如何尝试包含它,网站都无法识别 api 密钥。基本上,我试图访问的网站希望将 api 密钥放在 url 的开头。当我使用 curl 执行此操作时,它可以完美运行。但是,当我通过 python 请求尝试它时,它不起作用。将其作为字典中的键值对发送也不起作用。
这行得通
curl -H "Content-Type:application/json" -d '{"ndbno":["11124"],"type":"f"}' [API KEY]@api.nal.usda.gov/ndb/V2/reports
这是请求代码:
import requests
headers = {'Content-Type': 'application/json',}
data = '{"ndbno":["11124"],"type":"f"}'
response = requests.post('http://[API KEY]@api.nal.usda.gov/ndb/V2/reports', headers=headers, data=data)
结果是一个包含以下消息的 json 响应:“{'error': {'code': 'API_KEY_MISSING', 'message': 'No api_key is provided. Get one at http://api.nal.usda.gov:80'}} "
如果我从 url 中删除 [API KEY] 并将其作为 "api_key":"[API KEY]" 添加到数据字典中,它也不起作用
顺便说一句,我没有将密钥作为列表或任何内容传递,我只是不想在我的问题中发布物理密钥。
我完全是 python 和 stackoverflow 的新手,但我已经尽职尽责,并且一直在寻找答案并测试几个小时来格式化请求的不同方法。非常感谢任何帮助!
【问题讨论】:
标签: python curl python-requests api-key