Nodejs:应用标头并获取响应

发布于 2024-11-29 12:52:55 字数 1015 浏览 6 评论 0原文

我有以下 GET 请求:

GET http://www.google.ie/ HTTP/1.1
Host: www.google.ie
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Proxy-Connection: keep-alive
Cookie: PREF=ID=0000043ea43e2426:U=204008a193b06a93:FF=0:TM=1310983818:LM=1310983985:S=HhQ3hzHoRpfrsFN4; NID=50=bT7R608p1asdflr9QiJ_cY80WjaFZ6cB-IJGLT6rpSdiH6bQwnxAEDGTJ1k4K3-A4Y6327iyepbXL6d3fnomtBcWXPQ7A5Px1zckZGBoo8gtMrixSGneodtc7IIaxSu; SID=DQAAALcAAACa0eOu2S9ezDasdfx32stdYzKQQCc7Q4dcYucZkXOaQkXKmfkr0iMlPQZkwy4PlQLzZsiO_5_lLDclyBDJsJIKU0my000owlYMX14K22pBopTN1EUlOrJ7LIkwhznasdfBleSojFfhMbn0BoYM1WAzwnpMAttoAuzG0bZXcScgZkDizC2FUHXVV3-eHZPrS2ncychNguPNZ_M9V_oEtoqJUmqasdf_kaKTOM2KnT0P5wMswKru8_KrkwK6iCc7ag; HSID=A78ACtAr9H6MYp-dn
Cache-Control: max-age=0

我想在 node.js 中获取响应。有人可以指出我如何做到这一点的正确方向吗?

预先非常感谢,

I have the following GET request:

GET http://www.google.ie/ HTTP/1.1
Host: www.google.ie
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Proxy-Connection: keep-alive
Cookie: PREF=ID=0000043ea43e2426:U=204008a193b06a93:FF=0:TM=1310983818:LM=1310983985:S=HhQ3hzHoRpfrsFN4; NID=50=bT7R608p1asdflr9QiJ_cY80WjaFZ6cB-IJGLT6rpSdiH6bQwnxAEDGTJ1k4K3-A4Y6327iyepbXL6d3fnomtBcWXPQ7A5Px1zckZGBoo8gtMrixSGneodtc7IIaxSu; SID=DQAAALcAAACa0eOu2S9ezDasdfx32stdYzKQQCc7Q4dcYucZkXOaQkXKmfkr0iMlPQZkwy4PlQLzZsiO_5_lLDclyBDJsJIKU0my000owlYMX14K22pBopTN1EUlOrJ7LIkwhznasdfBleSojFfhMbn0BoYM1WAzwnpMAttoAuzG0bZXcScgZkDizC2FUHXVV3-eHZPrS2ncychNguPNZ_M9V_oEtoqJUmqasdf_kaKTOM2KnT0P5wMswKru8_KrkwK6iCc7ag; HSID=A78ACtAr9H6MYp-dn
Cache-Control: max-age=0

I want to get the reponse in node.js. Can someone please point me in the right direction as to how I might do this?

Many thanks in advance,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苍景流年 2024-12-06 12:52:55

一个起点是 http 模块文档,用于 <代码>http.request。

One place to start is the http module docs for http.request.

懒猫 2024-12-06 12:52:55

是吗,代理人?如果是这样,那么您可以使用这样的代理:

var net = require('net');

// Create TCP-server
var server = net.createServer( function(soc){ // soc is socket generated by net.Server

  // Incoming request processing
  soc.on('data', function(data){


    // Create new socket
    var client = net.Socket();

    // Get host from HTTP headers
    var re = /[^\n]+(\r\n|\r|\n)host:\w*([^:\r\n]+)/i;
    var host = data.toString('utf-8').match(re);

    // Pause soc for inner socket connection
    soc.pause();

    // Connect to Node.js application
    client.connect(80, host);

    client.on('connect', function()
    {
      // Write request to your node.js application
      client.write(data.toString('utf-8'));
    });

    client.on('data', function(cdata)
    {
      // Return socket to live
      soc.resume();

      // Write client data to browser
      soc.write(cdata.toString('utf-8'));
      soc.pipe(soc);
      soc.end();
    });

    client.on('end', function(){
      client.destroy();
    });
  });
}
);

server.on('error', function (err){
  // Error processing i just pass whole object
  console.log(err);
});

server.listen(8088);
console.log('Server is listening %d\n', 8088);

Is it, proxy? If so, then you can use such proxy:

var net = require('net');

// Create TCP-server
var server = net.createServer( function(soc){ // soc is socket generated by net.Server

  // Incoming request processing
  soc.on('data', function(data){


    // Create new socket
    var client = net.Socket();

    // Get host from HTTP headers
    var re = /[^\n]+(\r\n|\r|\n)host:\w*([^:\r\n]+)/i;
    var host = data.toString('utf-8').match(re);

    // Pause soc for inner socket connection
    soc.pause();

    // Connect to Node.js application
    client.connect(80, host);

    client.on('connect', function()
    {
      // Write request to your node.js application
      client.write(data.toString('utf-8'));
    });

    client.on('data', function(cdata)
    {
      // Return socket to live
      soc.resume();

      // Write client data to browser
      soc.write(cdata.toString('utf-8'));
      soc.pipe(soc);
      soc.end();
    });

    client.on('end', function(){
      client.destroy();
    });
  });
}
);

server.on('error', function (err){
  // Error processing i just pass whole object
  console.log(err);
});

server.listen(8088);
console.log('Server is listening %d\n', 8088);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文