我正在尝试使用Meteor调用一个API。 API指南中给出的示例代码如下:
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(userName + password)));
我必须在Meteor中使用此代码,但我还没有找到任何解决方案。我能够使用GET
和POST
方法调用没有标头的API。但是如何将上面的标题传递给该API调用?
我正在使用Meteor.http.post
进行API调用。我通过参考上面的代码使用以下代码:
return Meteor.http.post("url",
{ headers: {"Authorization": "Basic"+(new Buffer(username+password, "ascii")).toString("base64")},
params: { name: username} } );
但它没有用。 我也有工作的PHP代码示例来进行这个API调用:
$process = curl_init($host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded', $additionalHeaders));
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERPWD, $username . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);
任何人都可以给我任何关于如何做的提示吗?提前谢谢。
答案 0 :(得分:1)
callApi: function () {
return Meteor.http.post("url",
{ headers: {"Authorization": "Basic"+(new Buffer(username+password, "ascii")).toString("base64")},
params: { name: username} } );
}
在服务器端代码中使用上述代码,我们可以将标头传递给API。