欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解nodejs通过代理(proxy)发送http请求(request)

程序员文章站 2022-07-06 20:54:48
有可能有这样的需求,需要node作为web服务器通过另外一台http/https代理服务器发http或者https请求,废话不多说直接上代码大家都懂的: var...

有可能有这样的需求,需要node作为web服务器通过另外一台http/https代理服务器发http或者https请求,废话不多说直接上代码大家都懂的:

var http = require('http')
var opt = {
 host:'这里放代理服务器的ip或者域名',
 port:'这里放代理服务器的端口号',
 method:'post',//这里是发送的方法
 path:' https://www.google.com',   //这里是访问的路径
 headers:{
 //这里放期望发送出去的请求头
 }
}
//以下是接受数据的代码
var body = '';
var req = http.request(opt, function(res) {
 console.log("got response: " + res.statuscode);
 res.on('data',function(d){
 body += d;
 }).on('end', function(){
 console.log(res.headers)
 console.log(body)
 });

}).on('error', function(e) {
 console.log("got error: " + e.message);
})
req.end();

这样我们就通过了指定代理服务器发出了https的请求,注意这里我们同代理服务器是http协议的,不是https,返回的结果当然肯定会根据你的代理服务器不同有所不同。

got response: 302
{ location: 'https://www.google.com.tw/',
 'cache-control': 'private',
 'content-type': 'text/html; charset=utf-8',
 'set-cookie': 
  [ 'pref=id=b3cfcb24798a7a07:ff=0:tm=1356078097:lm=1356078097:s=v_3qed0_gcw6-xum; expires=sun, 21-dec-2014 08:21:37 gmt; path=/; domain=.google.com',
   'nid=67=qojf_z3w7klibpnz6xld__r0rygyyu7l_xidqmz3anjbfaddzhijme3qcx651yucne_irk_2jms8hf5fuxnl85me0ndrtn9iq0z2gw69n00orb970hphtbye0maogzit; expires=sat, 22-jun-2013 08:21:37 gmt; path=/; domain=.google.com; httponly' ],
 p3p: 'cp="this is not a p3p policy! see http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."',
 date: 'fri, 21 dec 2012 08:21:37 gmt',
 server: 'gws',
 'content-length': '223',
 'x-xss-protection': '1; mode=block',
 'x-frame-options': 'sameorigin',
 via: '1.0 ***.****.com:80 (squid/2.6.stable21)',
 'proxy-connection': 'keep-alive' }
<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>302 moved</title></head><body>
<h1>302 moved</h1>
the document has moved
<a href="https://www.google.com.tw/" rel="external nofollow" >here</a>.
</body></html>

谷歌返回了一个302,告诉我们进行跳转,需要访问 https://www.google.com.tw/ 这个地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。