【问题标题】:JavaScript/Node + cURLJavaScript/节点 + cURL
【发布时间】:2015-06-13 22:23:15
【问题描述】:

我有一行cURL:

curl -X POST --form "file=@Calvin Harris - Thinking About You (Tez Cadey Remix)_165299184_soundcloud.mp3" https://api.idolondemand.com/1/api/async/recognizespeech/v1

我正在构建一个以 Meteor/Ionic 作为框架的混合移动应用程序。因此,我可以访问任何利用 cURL 的 Node 库。

任何人都可以:

1) 推荐众多 node-curl 库之一 2) 告诉我如何在正确的库的上下文中正确输出上面的 cURL 行?

阻止我的主要问题是--form 标志。我已经倾注了几个库/文档,但没有一个明确提及如何使用此表单标志。我不能删除这个标志,这是 API 的要求。

【问题讨论】:

  • 为什么要专门卷曲?
  • 我无法仅使用文件名来使用 IDOL-onDemand API。 IDOL-onDemand 期望看到“multipart/form-data”。也许如果我可以通过 HTTP POST 请求传递这些数据,我就可以避免使用 cURL。
  • 很确定你可以。
  • 你看过'request'库吗? github.com/request/…
  • 这是我读过的其中之一。我注意到它有一个“表单”部分,但它仍然让我感到困惑。假设我有一个输入字段:。如何正确使用请求 API 来捕获此表单字段?

标签: javascript node.js curl meteor


【解决方案1】:

你可以只使用节点的 fshttps APIs

var fs = require('fs');
var https = require('https');

var rs = fs.createReadStream(
  'Calvin Harris - Thinking About You (Tez Cadey Remix)_165299184_soundcloud.mp3'
);

var req = http.request({
  hostname: 'api.idolondemand.com',
  path: '/1/api/async/recognizespeech/v1',
  method: 'POST'
}, function(res) {
  // do something when you get a response
});

rs.pipe(req);

或者像@ffk 提到的那样使用 requests 模块

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-07
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多