有人可以帮我把这个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