详解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学习笔记之Connect中间件应用实例
Jan 27 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
Nodejs实现短信验证码功能
Feb 09 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 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 pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
Python生成pdf文件的方法
2014/08/04 Python
Python实现控制台输入密码的方法
2015/05/29 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
python global和nonlocal用法解析
2020/02/03 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
数字漫画:comiXology
2020/06/13 全球购物
中学教师请假制度
2014/02/03 职场文书
小学中秋节活动方案
2014/02/06 职场文书
应届大专生求职信
2014/06/26 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
小学班主任研修日志
2015/11/13 职场文书
python实现简单的聊天小程序
2021/07/07 Python
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技