张贴到基本访问授权保护的资源

Alb*_*gni 2 post basic-authentication node.js

我在发布到受基本访问身份验证保护的资源时遇到问题。这是代码,我正在使用@mikeal的请求

request.post({
  uri: "http://user:password@mysite.com/resource",
  json: {
    "id": "1",
    "par1": "a",
    "par2": "b"
  }
}, function (error, response, body) {
  console.log(error);
  console.log(response);
  console.log(body);
});
Run Code Online (Sandbox Code Playgroud)

我有{ [Error: Parse Error] bytesParsed: 0 }错误,undefined反应和身体都有。如果删除“ user:password”部分,则可以正确获取401 HTTP Basic:访问被拒绝。

您是否知道像我这样是否有办法将JSON发布到受保护的资源?如果不是这样,我相信我将不得不采用http模块的方式,但是我将其保留为最终资源,因为它更加冗长。

更新:为了使操作尽可能简单,我将该文件移动到了新目录中并做了一个npm install request。问题消失了,我检查了来自哪里byteParsed,发现它在Express要求的“可编排”中,而我在运行此测试的目录中有此文件。现在有点困惑。

Arb*_*ong 5

我这样做是这样的:

var options = {                 
  method: 'POST',             
  uri: 'http://your.url.com/',
  form: {                  
    field1: 'somevalue',               
    field2: 666.66  
    },                       
  headers: {               
    'Authorization': 'Basic ' + new Buffer("username:password").toString('base64')                  
  }
};                                         
request(options, function(error, response, body) {  
  // do stuff
});
Run Code Online (Sandbox Code Playgroud)