有人可以帮我把这个Curl请求转换成node.js吗?

我正在使用Webhooks,并试图从我的node.js代码运行一个Curl请求。我使用npm 请求包来做到这一点。我无法找到正确的方式将Curl请求转换为将发送请求的应用程序中的代码。有人可以帮我把这个Curl请求转换成node.js吗?

这是卷曲的请求:

curl -X POST https://tartan.plaid.com/connect \ 

-d client_id=test_id \

-d secret=test_secret \

-d username=plaid_test \

-d password=plaid_good \

-d type=wells \

-d options='{

"webhook":"http://requestb.in/",

"login_only":true }'

这工作得很好,当我在我的终端上运行,所以我知道凭据工作,它在谈论到服务器。

这里是我的Node.js代码:

var request = require('request'); 

var opt = {

url: 'https://tartan.plaid.com/connect',

data: {

'client_id': 'test_id',

'secret': 'test_secret',

'username': 'plaid_test',

'password': 'plaid_good',

'type': 'wells',

'webhook': 'http://requestb.in/',

'login_only': true

}

};

request(opt, function (error, response, body) {

console.log(body)

});

应该返回一个项目但所有我得到的是:

{ 

"code": 1100,

"message": "client_id missing",

"resolve": "Include your Client ID so we know who you are."

}

所有凭证从格子网站,他们在我的终端工作就好了,所以我认为这只是我写我的Node.js代码导致问题的方式。

如果任何人都可以帮助我找到正确的方式来编写节点代码,以便它能够做到curl请求在终端中所做的事情,那将是值得赞赏的!谢谢!

回答:

您可能希望在选项中使用form:而不是data:。希望这会做到这一点。

回答:

request的默认方法是GET。你想要一个POST,所以你必须将它设置为一个参数。您还必须根据documentation将数据作为JSON发送。所以我相信这应该工作:

var opt = { 

url: 'https://tartan.plaid.com/connect',

method: "POST",

json: {

'client_id': 'test_id',

'secret': 'test_secret',

'username': 'plaid_test',

'password': 'plaid_good',

'type': 'wells',

'webhook': 'http://requestb.in/',

'login_only': true

}

};

回答:

请参阅explainshell: curl -X -d为解释你的curl命令实际上做了什么。

  • 您发送POST要求
  • 您发送邮件使用使用内容类型的数据应用程序/ x-WWW窗体-urlencoded

要复制与request你必须对其进行相应配置:

var opt = { 

url: 'https://tartan.plaid.com/connect',

form: {

// ...

}

};

request.post(opt, function (error, response, body) {

console.log(body)

});

请参阅application/x-www-form-urlencoded获取更多示例。

以上是 有人可以帮我把这个Curl请求转换成node.js吗? 的全部内容, 来源链接: utcz.com/qa/258643.html

回到顶部