我使用here所示的规定卷曲方法成功调用了Watson Speech-To-Text API。我使用child_process
节点模块从我的节点脚本中调用Curl
。
我正在尝试过渡到使用request
模块执行相同的网络请求(获取转录的json转储)。我在requests
的条款中编写正确的http请求时遇到了一些麻烦。到目前为止,我有:
request({
url: 'https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?continuous=true×tamps=true',
method: 'POST',
headers: {
'Content-Type': 'audio/wav',
'Transfer-Encoding':'chunked',
'Authorization': 'Basic <usernameRedacted:passwordRedacted>'
},
body: {
'--data-binary': audioFileName
}
}, function(error, response, body){
if(error) {
console.log(error);
} else {
console.log(response.statusCode, body);
}
});
我得到throw new TypeError('first argument must be a string or Buffer');
或有时(在正确修改请求调用之后)获得400 http响应代码。据我所知,Curl
只是一个运行相同底层Post请求的Unix进程,据推测,我应该能够做到这一点。不幸的是,我似乎错过了一些重要的修复程序。更重要的是,NPM requests
README在身份验证方面不清楚,以及如何将二进制数据(CURL
中的--data-binary)加载到POST主体中。
提前非常感谢任何帮助。