详解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进程管理模块forever详解
Jun 01 NodeJs
实例详解Nodejs 保存 payload 发送过来的文件
Jan 14 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
async/await与promise(nodejs中的异步操作问题)
Mar 03 NodeJs
Nodejs 获取时间加手机标识的32位标识实现代码
Mar 07 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 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之第九天
2006/10/09 PHP
层叠菜单的动态生成
2006/10/09 PHP
PHP中的类-什么叫类
2006/11/20 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
PHP中的类型约束介绍
2015/05/11 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
javascript判断非数字的简单例子
2013/07/18 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
Vuex简单入门
2017/04/19 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
Pytorch to(device)用法
2020/01/08 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
财务会计专业毕业生自荐信
2013/10/19 职场文书
历史系毕业生自荐信
2013/10/28 职场文书
求职毕业生自荐书
2014/02/08 职场文书
战友聚会主持词
2014/04/02 职场文书
历史学专业求职信
2014/06/19 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
原告代理词范文
2015/05/25 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android