详解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 相关文章推荐
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
Sep 26 NodeJs
nodejs事件的监听与触发的理解分析
Feb 12 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 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
PHP 函数语法介绍一
2009/06/14 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php内嵌函数用法实例
2015/03/20 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
php的常量和变量实例详解
2017/06/27 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python字符串替换示例
2014/04/24 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python实现的双色球生成功能示例
2017/12/18 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
大二自我鉴定范文
2013/10/05 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
超市中秋节促销方案
2014/03/21 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
公民授权委托书
2014/10/15 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
画展邀请函
2015/01/31 职场文书
清洁工个人工作总结
2015/03/05 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python