详解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 npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
nodejs之请求路由概述
Jul 05 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
Dec 30 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
NodeJS 实现多语言的示例代码
Sep 11 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 NodeJs
Nodejs异步流程框架async的方法
Jun 07 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
理解php Hash函数,增强密码安全
2011/02/25 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
浅析vue深复制
2018/01/29 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
Python 中Pickle库的使用详解
2018/02/24 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
超市重阳节活动方案
2014/02/10 职场文书
党员组织关系介绍信
2014/02/13 职场文书
取保候审保证书
2014/04/30 职场文书
调研汇报材料范文
2014/08/17 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers