将CURL命令转换为NPM请求调用

时间:2016-12-08 00:28:23

标签: javascript node.js http curl npm

我使用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&timestamps=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主体中。

提前非常感谢任何帮助。

0 个答案:

没有答案