详解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实现黑名单中间件设计
Jun 17 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 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
人族 Terran 基本策略
2020/03/14 星际争霸
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
jQuery autocomplete插件修改
2009/04/17 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
详解KMP算法以及python如何实现
2020/09/18 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
年会搞笑主持词
2014/03/27 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
计划生育证明格式范本
2014/09/12 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
狂人日记读书笔记
2015/06/30 职场文书
JavaScript原型链详解
2021/11/07 Javascript