【问题标题】:Node.js + request POST Basic AuthorizationNode.js + 请求 POST 基本授权
【发布时间】:2021-10-17 13:36:16
【问题描述】:

我正在尝试编写一个小型 node.js 项目来连接 SMS 网关。 (Cpsms.dk) 他们有一个非常直接的 API,但我对 node.js 很陌生。

以下 CURL 功能运行良好:

curl -X POST -H "Authorization: Basic MyApiKey" -d '
{
"to":"4512345678", "message": "This is the message text body", "from": "CPSMS"
}
' "https://api.cpsms.dk/v2/send"

我正在尝试在 node.js 中实现相同的功能(稍后将与 Firebase Cloud Function 一起使用,但现在只是在本地运行。)

到目前为止我的代码:

const request = require('request');

const url = "https://api.cpsms.dk/v2/send";
const data =  '{"to":"4512345678", "message": "This is the message text body", "from": "CPSMS"}';
const auth = "Basic MyApiKey";

const options = {
  url : url,
  headers : {
      "Authorization" : auth
  },
};

request(options, function(err, res, body) {
    console.log(body);
});

但我收到“404 Not Found”,我很确定这与授权有关。 谁能帮帮我?

【问题讨论】:

    标签: node.js post request authorization


    【解决方案1】:

    404 表示“未找到”,与授权无关,只是未找到 API 端点,这可能与您在 cURL 请求中使用 POST 和在节点应用程序中使用的事实有关no 方法,表示请求自动使用 GET 方法。尝试将method: 'POST' 添加到您的选项中,或者使用request.post(options, callback) 代替request(options, callback)

    要添加您的似乎已经是 JSON 的数据,只需将 json: data 添加到您的选项中即可。

    由于 request 模块已被弃用(参见此处:https://github.com/request/request/issues/3142),我建议您使用 axios 或 got(axios:https://www.npmjs.com/package/axios,got:https://www.npmjs.com/package/got)之类的其他东西

    要使用 axios(或其他任何东西),只需使用 npm 安装软件包,要求它并查找他们的文档以使用它:(axios)https://github.com/axios/axioshttps://www.npmjs.com/package/axios

    【讨论】:

    • 当然:-) 这是缺少的方法声明。我去看看axios。
    • @Lubker 很高兴能够帮助您。如果您没有任何其他问题,请您接受这个答案吗?祝你有美好的一天。
    • 当然。祝你有美好的一天。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多