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


Posted in NodeJs onSeptember 22, 2017

有可能有这样的需求,需要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/ 这个地址

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

NodeJs 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
用nodejs写的一个简单项目打包工具
May 11 NodeJs
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
Sep 26 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
使用vs code开发Nodejs程序的使用方法
Sep 21 #NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 #NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
Sep 19 #NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 #NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 #NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 #NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 #NodeJs
You might like
DC动漫人物排行
2020/03/03 欧美动漫
如何使用脚本模仿登陆过程
2006/11/22 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
类之Prototype.js学习
2007/06/13 Javascript
JS Array对象入门分析
2008/10/30 Javascript
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
python和ruby,我选谁?
2017/09/13 Python
python中单下划线_的常见用法总结
2018/07/10 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
大一期末自我鉴定
2013/12/13 职场文书
文科教师毕业的自我评价
2014/01/16 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
个人授权委托书
2014/09/15 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
食品安全责任书范本
2015/05/09 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python