簡體   English   中英

通過request.post(Express.js)POST自定義標頭

[英]POST custom header via request.post (Express.js)

我正在嘗試使用在本地主機上運行的Express應用程序復制一個非常簡單的“ POST” API注銷請求。 它應該接收注銷信息,並將其從本地主機傳遞到MY-SERVER

外觀如何:

 curl "http://MY-SERVER/api/2.2/auth/signout" -X POST -H "Auth:1245"

我正在使用request.post,在一個單獨的路由文件“ signout.js”中設置(請參見下文)。

var express = require('express');
var request = require('request');
var cheerio = require('cheerio');
var router = express.Router();
var OnlineApiUrl = 'https://MY-SERVER/api/2.2/';

//Sign Out
router.post('/auth/signout', function(req, res) {
 var authentication_token = req.query.auth_token;

request.post({
url: OnlineApiUrl + 'auth/signout',
headers: {
      'Auth': authentication_token
}
}, function(err, response, body) {
var $ = cheerio.load(body);
var hasError = $('error').length;
if (hasError) {
  response = {
    http_code: $('error').attr('code'),
    http_message: $('summary').text()
  };
} else {
  response = {
    http_code: 204
  };
}
return res.json(response);
});
});
module.exports = router;

據我所知它應該工作,但是當我跑步時

curl https://localhost:8080/api/auth/signout?auth=12345  --cacert /etc/nginx/ssl/server.crt 

它僅返回“無法獲取/ api / auth / signout?auth = 12345”

知道我在這里缺少什么嗎? 它只需要傳遞該自定義標頭,就沒有其他了。 我也不確定為什么它會給我“無法獲取”的POST請求...

我想出了解決方案。 問題是我兩次使用了“ POST”:在更高級別的“ router.post”和“ request.post”中。 將較高級別的放置為“ router.get”(同時保留“ request.post”)即可解決該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM