我正在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>

最佳答案

options object没有uri键,应该使用hostname

另外,请勿在主机内部指定协议,请使用键protocol

您的对象应该是:

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


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

const https = require('https');

关于javascript - HTTP GET请求( Node )返回501,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44000021/

10-14 19:47
查看更多