繁体   English   中英

Python3.6 request.post导致ConnectionError编号104,但是使用curl时一切都很好

[英]Python3.6 requests.post results in ConnectionError number 104, but all is fine when using curl

我正在尝试将curl命令重写为python。 这个想法是这样的:我们上传一个音频文件,并以文本形式返回它所说的内容,例如语音到文本。

该网站为我们提供了curl的示例,该示例发出了一个发帖请求,并返回一个简单的响应。

当我尝试将curl请求转换为python请求时(在https://curl.trillworks.com/几乎没有帮助下),我得到ConnectionError编号104,连接被对等方重置。

我强烈怀疑发生这种情况,因为当我首先进行连接vie卷曲时,我得到响应:<HTTP / 1.1 100继续,并且在等待另一个响应的短暂时间后:<HTTP / 1.1 200 OK,带有一些示例数据。 我认为python request.post只是挂在第一个HTTP / 1.1 100上。

我无法使用try处理或重置连接...除了...,都没有成功地使用time.sleep()循环连接。

有任何想法吗?

PS代码:

卷曲命令:

curl "LINK TO SERVER" -H "Content-Type: audio/x-speex;rate=16000" -H "Accept-Language: ENUS" -H "Transfer-Encoding: chunked" -H "Accept: application/xml" -H "Accept-Topic: Dictation" -k --data-binary @audio_16k16bit.pcm 

相当于Python:

#!/bin/python

import requests
import time

headers = {
   'Content-Type': 'audio/x-wav;codec=pcm;bit=16;rate=16000',
   'Accept-Language': 'ENUS',
   'Transfer-Encoding': 'chunked',
   'Accept': 'application/xml',
    'Accept-Topic': 'Dictation',
}

params = (
    ('appId', ''),
     ('appKey',''),
('id', ''),
)

data = open('audio_16k16bit.pcm', 'rb').read()

r = requests.post('LINK TO SERVER', headers=headers, data=data, verify=False)

print(r.content)

应该删除并让服务器确定文件的类型,这也是因为我们将其发送为不需要分块的一个文件:

'Content-Type': 'audio/x-wav;codec=pcm;bit=16;rate=16000',
 'Transfer-Encoding': 'chunked'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM