尽管在Node js post请求中给出了正确的API密钥,但无法接收响应



请帮我处理下面我试图发出的POST请求。下面是代码片段。

const express = require("express");
const bodyParser = require("body-parser");
//const request = require("request");
const https = require("https"); 
const request = require('request-promise');
const app = express();

app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static("public"));
app.get("/", function(req, res){
res.sendFile(__dirname + "/test.html");
});
const data = {
"some_header":{
"name":"xxxxx"
}
};
const jsonData = JSON.stringify(data);
console.log(jsonData);
app.post("/post", function(req, res){
const url = "xxxxxxxxxxxx";
const options = {
method: "POST",
body: data,
json: true,
headers: {
ContentType: "application/json",
Authorization: "nhgjgjhgjghjghj"
}
}

const request = https.request(url, options, function(response) {
if (response.statusCode === 200) {
// res.send("success");
console.log("success");
} else {
//res.send("Failed");
console.log("failure");
}
response.on("data", function(data) {
console.log(JSON.parse(data));
})
})
request.write(jsonData);
request.end();
});
app.listen(process.env.PORT || 3000, function() {
console.log("The app is up and running on Port 3000");
});

我从外部服务器得到了200OK的响应,但无法发布数据。当我从服务器记录响应数据时,我收到了这个success { require_login: true }

"成功"是控制台日志消息。require_login:true是我从服务器得到的响应。我哪里错了?

尝试在api键之前添加Basic。此外,如果您使用的是base64,那么请检查原始字符串是否正确,并且应该是类似于:login:password 的字符串

headers: {
ContentType: "application/json",
Authorization: "Basic BAsE64Format or api:key or login:password"
}
headers: { "Content-type": "application/json", Authorization: 'Basic ' + Buffer.from('CtB2HZwaRdGggr1g4K').toString('base64') } 

将内容类型用引号括起来,并将API密钥转换为基数64,这就完成了

最新更新