如何使用Meteor进行API调用并将标头传递给它

时间:2016-02-06 12:24:59

标签: javascript json api meteor

我正在尝试使用Meteor调用一个API。 API指南中给出的示例代码如下:

request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(userName + password)));

我必须在Meteor中使用此代码,但我还没有找到任何解决方案。我能够使用GETPOST方法调用没有标头的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);

任何人都可以给我任何关于如何做的提示吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

callApi: function () {    
return Meteor.http.post("url",
    { headers: {"Authorization": "Basic"+(new Buffer(username+password, "ascii")).toString("base64")}, 
       params: { name: username} } );
}

在服务器端代码中使用上述代码,我们可以将标头传递给API。