Node.js 通过代理服务器发送 HTTP/HTTPS 请求详解
作者:夜航船时间:2026-10-22 08:41:23浏览:149
本文介绍如何在 Node.js 中通过指定的 HTTP 代理服务器发起 HTTP 或 HTTPS 请求。通过配置 http 模块的选项,包括主机、端口、方法和路径,实现请求转发。示例展示了如何处理代理返回的状态码及响应数据,适用于需要通过中间代理服务器访问目标资源的场景。
Node.js 通过代理发送 HTTP/HTTPS 请求
在某些场景下,Node.js 作为 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>
例如,Google 返回了状态码 302,提示进行重定向,要求访问地址 https://www.google.com.tw/。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
作者最新文章
在 NestJS 中使用管道验证数据与守卫控制访问权限
2026-11-05 12:43:41
Node.js后端生成高强度随机字符串的方法
2026-11-04 16:29:54
Node.js环境中怎么使用axios或http模块发送GET请求
2026-11-03 21:57:15
Node.js环境下怎么实现JS反混淆自动化?常用库与CLI工具推荐
2026-11-03 21:15:54
解决JS逆向常见报错:缺少DOM环境导致代码运行失败
2026-11-03 20:41:59
