HTTP GET请求(节点)返回501

时间:2017-05-16 11:17:57

标签: javascript node.js http

我在Node上测试虚假的HTTP请求。但是我在定义GET,POST方法或“FOO”的标题上得到了相同的结果(501)。我不明白输出。有人能给我一个暗示吗?代码:

var http = require('http');
var fs = require('fs');


var options = {
    method: "FOO" //or GET 
    , uri: 'https://www.google.com'


};

var callback = function(response){
   var exportJson= JSON.stringify(response.headers);
   var arrayData =[];
   response.on('data', function(data) {
      arrayData += data;

   });

   response.on('end', function() {
     console.log('THE DATA IS ' + arrayData);


   });
    fs.appendFile("input.txt", exportJson, function(err) {
    if(err) {
        return console.log(err);
        }
    });

}



var req = http.request(options, callback); 


function test(){

for (var prop in options.method) {
  //console.log(`options.method${prop} = ${options.method[prop]}`);
   //console.log(req);
  req;
}

}

test();     
req.end();
控制台说:

“GET”或“FOO”方法:

<h2>HTTP ERROR 500.19 - Internal Server Error</h2>

1 个答案:

答案 0 :(得分:2)

options object没有uri密钥,您应该使用hostname

此外,请勿在主机内指定协议,请使用密钥protocol

你的对象应该是:

const options = {
    hostname: 'www.google.com', 
    protocol: 'https:',
}

请记住,要使用https,您需要包含正确的模块:

const https = require('https');