详解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写的一个简单项目打包工具
May 11 NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
如何利用nodejs实现命令行游戏
Nov 24 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
什么是短波收听SWL
2021/03/01 无线电
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python实现的石头剪子布代码分享
2014/08/22 Python
python求crc32值的方法
2014/10/05 Python
Python中DJANGO简单测试实例
2015/05/11 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
党员承诺书怎么写
2014/05/20 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
入股协议书范本
2014/11/01 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书