首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中,我如何使用request来实现与这个curl脚本相同的功能?

在python中,我如何使用request来实现与这个curl脚本相同的功能?
EN

Stack Overflow用户
提问于 2017-03-05 02:21:54
回答 2查看 277关注 0票数 1

我正在尝试使用Nuance speech API,在过去我已经成功地使用了其他API,但大多数时候它们比这更直接。不管出于什么原因,我用来发出请求的Python代码似乎不能完成这项工作。

这是我正在尝试复制的curl脚本。

代码语言:javascript
复制
curl "https://dictation.nuancemobility.net:443/NMDPAsrCmdServlet/dictation?appId=[APP_ID]&appKey=[APP_KEY]&id=[ID]" -H "Content-Type: audio/x-wav;codec=pcm;bit=16;rate=16000" -H "Accept-Language: ENUS" -H "Transfer-Encoding: chunked" -H "Accept: application/xml" -H "Accept-Topic: Dictation" -k --data-binary @audio_16k16bit.pcm  -v

这就是我尝试用python发送数据的方式。

代码语言:javascript
复制
import requests

url = 'https://dictation.nuancemobility.net:443/NMDPAsrCmdServlet/dictation?appId=[APP_ID]&appKey=[APP_KEY]&id=[ID]'
headers = {}
headers['Content-Type'] = 'audio/x-wav;codec=pcm;bit=16;rate=16000'
headers['Accept-Language'] = 'ENUS'
headers['Transfer-Encoding'] = 'chunked'
headers['Accept'] = 'application/xml'
headers['Accept-Topic'] = 'Dictation'
data = open('audio_16k16bit.pcm', 'rb')
r = requests.post(url, headers=headers, data=data)

这也是一份documentation的副本,但是我似乎不明白我到底做错了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-05 03:37:13

我删除了这一行- headers['Transfer-Encoding'] = 'chunked'

在没有任何其他更改的情况下,我现在似乎得到了预期的结果。

票数 2
EN

Stack Overflow用户

发布于 2017-03-05 02:53:32

基于这样的事实,当请求处理SSL时,您的连接似乎通常被重置,并且curl脚本中的-k标志允许使用不安全的SSL连接(请参阅curl documentation),看起来SSL身份验证可能存在一些问题。您可以尝试添加verify=False作为post请求的参数。如果它起作用了,那么这肯定是导致这种情况的原因。当然,这样做会使您的连接不安全,因此您可能需要考虑它的安全影响,这取决于您使用它的目的。

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

https://stackoverflow.com/questions/42599631

复制
相关文章

相似问题

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