详解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实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
nodejs中实现sleep功能实例
Mar 24 NodeJs
nodejs中实现阻塞实例
Mar 24 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
Javascript 继承机制实例
2009/08/12 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
python把转列表为集合的方法
2019/06/28 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
在python shell中运行python文件的实现
2019/12/21 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
体育教育专业自荐信范文
2013/12/20 职场文书
校园广播稿500字
2014/02/04 职场文书
家长学校教学计划
2015/01/19 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
python 模块重载的五种方法
2021/04/24 Python
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
JavaScript 对象创建的3种方法
2021/11/17 Javascript
在 Python 中利用 Pool 进行多线程
2022/04/24 Python