Невозможно получить ответ, несмотря на предоставление правильного ключа API в node js почтовом запросе - PullRequest
0 голосов
/ 25 апреля 2020

Пожалуйста, помогите мне с приведенным ниже запросом 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 - это ответ, который я получаю от сервера. куда я иду не так?

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Попробуйте добавить Basi c перед тем, как использовать API-ключ. Кроме того, если вы используете base64, убедитесь, что исходная строка правильная и должна выглядеть примерно так: логин: пароль

headers: {
     ContentType: "application/json",
      Authorization: "Basic BAsE64Format or api:key or login:password"
  }
0 голосов
/ 25 апреля 2020
headers: { "Content-type": "application/json", Authorization: 'Basic ' + Buffer.from('CtB2HZwaRdGggr1g4K').toString('base64') } 

, заключив в кавычки тип контента и преобразовав ключ API в base 64, добился цели

...