前提:
1、Android Studio->Device Manager->Create Virtual Device,创建安卓模拟器进行测试
2、宿主机配置了hosts:
192.168.101.2 api.dev.local
3、宿主机能直接访问http://api.dev.local/login,但模拟器上报错无法访问。模拟器上无法修改hosts(adb push ...hosts /system/etc/会报错,file readonly...)
解决方法:
1、安装fiddler
2、在AutoResponder选项卡添加重写规则:
Match: regex:^http://10\.0\.2\.2:8888/api-dev/(.*)
Action: http://api.dev.local/$1
确保AVD能够通过10.0.2.2
访问宿主机:
设置 Android 模拟器网络 | Android Studio | Android Developers
Fiddler的端口通常是8888,Tools->Options中查看:
3、最后在应用程序中配置API_BASE_URL=http://10.0.2.2:8888/api-dev,重新运行程序到模拟器,会将http://10.0.2.2:8888/api-dev请求全部转发到fiddler中,通过fiddler转发到正确的域名。