我有一个在 Android 上运行的移动应用程序,当设备连接到 Wi-Fi 网络时,我想将 API 请求映射到网络上的内部服务器
我们的想法是,当我们测试应用程序时,我们只需要登录到特定的 WiFi 网络并调试任何问题,而不必使用不同的应用程序。
基本思想是,当设备处于 wifi 网络中并尝试连接时api.example.com,由本地服务器接收,而不是面向公众api.example.com,但当设备在野外时,它会像往常一样连接到api.example.com
答案1
您可以使用设置自定义的 DNS 服务器(Unbound 或 Dnsmasq)来返回不同的 IP 地址api.example.com
,并将 DHCP 服务器设置为自定义的服务器。
在 Unbound 中,例如local-data
:
本地数据:“api.example.com A 10.1.1.1”
在 Dnsmasq 中,它是--address=
,例如:
--address=/api.example.com/10.1.1.1