http-proxy 有问题

Posted

技术标签:

【中文标题】http-proxy 有问题【英文标题】:http-proxy is being questionable 【发布时间】:2018-12-03 20:15:16 【问题描述】:

我需要一些聪明的人来帮助我解决这个问题。这对我来说没有多大意义,因为它基本上是向完全相同的 url 发送请求,但最终结果不同。

这是代码的 sn-p,我尝试设置它以便于理解问题:

var test = "/users/1"
httpsProxy.web(req, res, target: `https://api.roblox.com$test`);

// Output: "Id":1,"Username":"ROBLOX","AvatarUri":null,"AvatarFinal":false,"IsOnline":false

var settings = 
    target: `https://api.roblox.com$req.url`
;
console.log(req.url);
// Output: /Users/2

httpsProxy.web(req, res, settings)

// Output: "errors":["code":404,"message":"NotFound"]

【问题讨论】:

【参考方案1】:

存在区分大小写的问题。您的 req.url 具有大写的 Users 世界。尝试在发送请求之前申请String.toLowerCase() 或调整您已形成req.url 的方式(最好)。

var settings = 
    target: `https://api.roblox.com$req.url.toLowerCase()`
;

重要提示:应用 toLowerCase 可能会给您带来问题,因此请考虑修复导致该工作 (Users) 不是小写的根本原因,或者通过使用带有 RegExp 的 String.replace 可以更安全。

【讨论】:

以上是关于http-proxy 有问题的主要内容,如果未能解决你的问题,请参考以下文章

使用节点 http-proxy 代理 websocket 连接

Nodejs http-proxy代理实战应用

节点 http-proxy:将流量转发到外部 https 站点 - 崩溃

使用http-proxy替代nginx实现反向代理

在本地设置 http-proxy 代理 (前后端分离)

Node.js http-proxy 丢弃 websocket 请求