python 十行代码系列(一):远程访问请求本地接口

683 阅读1分钟

前言

日常开发调试时,我们可以通过将线上的服务定位到内网或者本地服务。比如我们线上的服务器域名为 diaosi.love,而本地服务启动为 127.0.0.1;那么可以将所有域名 diaosi.love 的请求转发到本地服务 127.0.0.1,方便我们调试代码。

安装

流程图

sequenceDiagram
用户 --x 网站: 请求接口
Note left of 网站: mitmproxy 拦截
用户 -->> mitmproxy : 请求接口
Note left of mitmproxy : mitmproxy<br/>匹配本地接口
mitmproxy -->> 用户: 返回请求

代码

from mitmproxy import http


class Joker:
    def request(self, flow: http.HTTPFlow) -> None:
        # 需要被代理的远程服务地址及被代理的路由地址
        if flow.request.url.startswith("https://www.diaosi.love:8080"):
            # 设置本地ip端口
            flow.request.host = "127.0.0.1"
            flow.request.port = 8080

addons=[
    Joker()
]

文档

代码说明及地址

mitmproxy详细教程