首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将具有多个表单和文件内容的cURL CLI命令端口到

将具有多个表单和文件内容的cURL CLI命令端口到
EN

Stack Overflow用户
提问于 2017-05-18 17:15:06
回答 2查看 139关注 0票数 1

我有一个在BASH中成功调用的cURL命令,我希望将它移植到Python中。“反洗钱法”如下:

代码语言:javascript
复制
#!/bin/bash

ACCESS_TOKEN="123456789"
METADATA_FILENAME="metadata.json"
AUDIO_FILENAME="audio.wav"

curl -s -i \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-F "metadata=<${METADATA_FILENAME};type=application/json; charset=UTF-8" \
-F "audio=<${AUDIO_FILENAME};type=audio/L16; rate=16000; channels=1" \
https://access-alexa-na.amazon.com/v1/avs/speechrecognizer/recognize \
-o response.txt

我目前正在尝试使用Python中的请求库,但似乎无法解密字段/表单。我目前有这种方法,并且无法确定如何将cURL命令解构成与Python兼容的格式:

代码语言:javascript
复制
endpoint = "https://access-alexa-na.amazon.com/v1/avs/speechrecognizer/recognize"

r = requests.post(
    endpoint,
    headers={
        "Authorization": "Bearer " + ACCESS_TOKEN
    },
    forms={
        # ???
    },
    files={
        # ???
    }
)

如有任何帮助,我们将不胜感激:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-19 10:25:41

多亏了t.m.adam的评论

结果显示,文件参数中的最后一个字段接受所有信息,用分号分隔。因此,我能够用它来处理这个问题:

代码语言:javascript
复制
r = requests.post(
    endpoint,
    headers={
        "Authorization": "Bearer " + auth.ACCESS_TOKEN
    },
    files={
        'metadata': (METADATA_FILENAME, open(METADATA_FILEPATH, 'rb'), 'application/json; charset=UTF-8'),
        'audio': (AUDIO_FILENAME, open(AUDIO_FILEPATH, 'rb'), 'audio/L16; rate=16000; channels=1')
    }
)
票数 1
EN

Stack Overflow用户

发布于 2017-05-18 17:21:30

试着使用这个:从cURL到Python请求

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44054123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档