Charles Proxy - 将远程映射到本地主机,从 https 到 http

Charles Proxy - Map remote to localhost from https to http

我正在尝试使用 Charles 将对我的服务器的请求映射到 Mac 上的本地主机。 服务端是HTTPS,本地是HTTP。 我正在通过 Chrome 浏览器、iOS 模拟器和 Postman 进行尝试。 它总是失败。

我将 charles 中的 map remotemy-server.com/* 设置为 http://localhost:PORT。 如果我尝试 https://my-server.com/,charles 映射请求,但我在 CONNECT 请求中收到错误。 如果我尝试 http://my-server.com,请求成功。

编辑: 有一个答案建议 rewrite 而不是 map remote。它很好并且可以工作,但对我来说是一种解决方法。我想像往常一样使用 map remote。我猜它需要 Charles 设置和机器设置

您应该像这样尝试使用重写功能:

正如@kubano 所建议的,我正在使用具有 URL 重写功能的 REWRITE 工具。 为了映射所有子路径,我使用正则表达式组来替换主机名,但重新附加“.com”之后的所有内容。 当用 () 包裹一些东西时,它被称为 'group' 并且你可以将它与 $1 $2 ... 一起使用......等等。在这种情况下,“.com”之后的内容在 replace 部分中被称为 $1

万一有人来这里搜索如何从 https 位置映射本地(文件)(开箱即用对我不起作用):

类似于重写规则(至少在 Charles 4 中),它与远程映射一起工作,将 https 映射到 http 位置(例如本地主机),然后将那个(本地主机)url 映射到一个文件

我建议使用 Proxyman 的 Map Remote 在 HTTP <-> HTTPS 之间进行映射,这样更容易设置。

只需创建一个规则,将 HTTPS 设置为 HTTP,以及主机。它将从 https://your-server.com 映射到 http://localhost:3000

文档:https://docs.proxyman.io/advanced-features/map-remote

免责声明:我是 Proxyman 的创建者,希望它能对您有所帮助。