详解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初级阶段之express
Nov 23 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 NodeJs
详解Nodejs内存治理
May 13 NodeJs
详解NodeJs开发微信公众号
May 25 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
nodejs中的异步编程知识点详解
Jan 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 utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
php7下的filesize函数
2019/09/30 PHP
Javascript中call的两种用法实例
2013/12/13 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
一篇不错的Python入门教程
2007/02/08 Python
python编程实现归并排序
2017/04/14 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
python dict 相同key 合并value的实例
2019/01/21 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
会计系中文个人求职信
2013/12/24 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
草船借箭教学反思
2014/02/03 职场文书
挂职个人工作总结
2015/03/05 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
Django如何与Ajax交互
2021/04/29 Python