python - 通过 python 调用 curl API
问题描述
我正在使用 API 来获取发票信息,文档中显示的示例来自 Curl:
[HEAD] Authorization: Basic base64(Consumer Key:Consumer Secret)
[HEAD] Content-Type: application/x-www-form-urlencoded
[POST] grant_type=client_credentials
echo -n "djaR21PGoYp1iyK2n2ACOH9REdUb:ObRsAJWOL4fv2Tp27D1vd8fB3Ote" | base64
上面的代码返回这个字符串:ZGphUjIxUEdvWXAxaXlLMm4yQUNPSDlSRWRVYjpPYlJzQUpXT0w0ZnYyVHAyN0QxdmQ4ZkIzT3RlCg
curl -k -d "grant_type=client_credentials" \
-H "Authorization: Basic ZGphUjIxUEdvWXAxaXlLMm4yQUNPSDlSRWRVYjpPYlJzQUpXT0w0ZnYyVHAyN0QxdmQ4ZkIzT3RlCg" \
https://gateway.apiserpro.serpro.gov.br/token
我如何将其转换为 Python?
解决方案
您可以使用以下内容:
import requests
headers = {
'Authorization': 'Basic ZGphUjIxUEdvWXAxaXlLMm4yQUNPSDlSRWRVYjpPYlJzQUpXT0w0ZnYyVHAyN0QxdmQ4ZkIzT3RlCg',
}
data = {
'grant_type': 'client_credentials'
}
response = requests.post('https://gateway.apiserpro.serpro.gov.br/token', headers=headers, data=data)
将 CURL 转换为 Python 请求的有用资源是:https ://curl.trillworks.com/
推荐阅读
- java - 我需要一个字符串并输出字符串中出现最多的单词
- azure-machine-learning-service - 面临将数据科学 VM(Ubuntu)连接/附加到 Azure ML 服务的问题
- html - 如何创建仅 css 的自动/手动滑块
- excel - Excel VBA 复制过滤的 CurrentRegion 可见单元格,但排除最后 3 列
- reactjs - TS2531 与 useRef
- ios - 自动续订订阅续订和取消检测和收据刷新
- docker - 使用 Visual Studio 时如何修复“Docker 命令失败,退出代码 125”
- http - 启用 LDAP over SSL 和 HTTP over SSL 是否需要两个证书?
- php - 设置下拉选项的选定值
- java - JavaFX:根据任务提示用户,并传回结果?