直接上代码
const http=require('node:http');
const url=require('node:url');
const server=http.createServer();
//你想访问的网址,可以随便更改
const domain='www.baidu.com';
server.on('request',function(req,res){
let url_parts=url.parse(req.url);
let options={
host:domain,
port:80,
path:url_parts.pathname+(url_parts.search||''),
headers:{'Host':domain,'User-Agent':req.headers['user-agent']},//这里必须要user-agent表示代理访问
method:req.method //访问的模式,Post,get,put等
};
//这里必须是http.request()请求访问,不能用http.get()
const creq=http.request(options,function(cres){
res.writeHead(cres.statusCode,cres.headers);
cres.pipe(res);
});
//利用pipe管道返回数据
req.pipe(creq);
});
server.listen(1337,'localhost');
server.on('listening',function(){
console.log('服务端开始监听');
})
server.on('connection',function(socket){
console.log('代理客户端已建立连接');
});
server.on('error',function(e){
if(e.code==="EADDRINUSE")
{
console.log('服务端口被占用');
return;
}
console.log('服务端出错,错误代码为'+e.code);
});