在 Node.js 中,您可以使用第三方库或手写代码来实现 HTTP 代理,并修改其响应。
首先,您需要创建一个 HTTP 服务器来作为代理服务器,然后在请求到达时对其进行处理。对于每个请求,您可以通过创建一个 HTTP 请求并将其发送到目标服务器来代理该请求。最后,您可以捕获响应并对其进行修改,然后将其发送回客户端。
以下是一个使用 Node.js 和
http
模块的示例代码:
const http = require('http');
const url = require('url');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
const proxy = http.request(
host: 'www.example.com',
path: req.url,
method: req.method,
headers: req.headers
proxyRes => {
// Modify the response here
proxyRes.headers['X-Added-Header'] = 'My value';
res.writeHead(proxyRes.statusCode, proxyRes.headers);
proxyRes.pipe(res);
req.pipe(proxy);
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
如果要使用第三方库,例如 http-proxy
,您可以使用以下代码:
const http = require('http');
const httpProxy = require('http-proxy');
const hostname = '127.0.0.1';
const port = 3000;
const proxy = httpProxy.createProxyServer({});
const server = http.createServer((req, res) => {
proxy.web(req, res, { target: 'http://www.example.com' });
proxy.on('proxyRes', (proxyRes, req, res) => {
// Modify the response here
proxyRes.headers['X-Added-Header'] = 'My value';
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
希望这些代码帮助您实现您的需求。