我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
我在本地机器上运行一个web服务,该服务运行在localhost:54722上。
我想从Android模拟器中运行的应用程序调用该服务。
我读到在应用程序中使用10.0.2.2将访问localhost,但它似乎不能与端口号一起工作。它说HttpResponseException: Bad Request。
当前回答
如果你正在使用一些第三方包,如node express或angular-cli,你需要找到你的机器的IP,并在服务器启动配置中将你的主机附加到该IP(而不是localhost)。然后使用IP从模拟器启动它。例如,我必须使用:ng serve -H 10.149.212.104来使用angular-cli。然后从我使用的模拟器:http://10.149.212.104:4200
其他回答
默认AVD使用10.0.2.2,Genymotion使用10.0.3.2
对于Laravel宅基地用户: 如果任何人使用Laravel与homestead,您可以在模拟器中使用192.168.10.10访问应用程序后端
还是不行? 另一个好的解决方案是使用ngrok https://ngrok.com/
我使用Windows 10作为我的开发平台,在我的模拟器中访问10.0.2.2:port没有像预期的那样工作,在这个问题上的其他解决方案也有同样的结果。
经过几个小时的深入研究,我发现如果在模拟器启动命令中添加-writable-system参数,事情就会正常工作。
你必须像下面这样通过命令行启动模拟器:
emulator.exe -avd <emulator_name> -writable-system
然后在模拟器中,您可以使用LAN IP地址和绑定端口访问主机上运行的API服务:
http://192.168.1.2:<port>
希望这能帮到你。
关于从命令行启动模拟器:https://developer.android.com/studio/run/emulator-commandline。
如果你正在使用一些第三方包,如node express或angular-cli,你需要找到你的机器的IP,并在服务器启动配置中将你的主机附加到该IP(而不是localhost)。然后使用IP从模拟器启动它。例如,我必须使用:ng serve -H 10.149.212.104来使用angular-cli。然后从我使用的模拟器:http://10.149.212.104:4200
我通过在Visual Studio Professional 2015中安装“输送机by Keyoti”解决了这个问题。 输送机生成一个远程地址(您的IP),端口(45455)支持外部请求。 例子:
输送机允许您从网络上的外部平板电脑和手机或Android模拟器测试web应用程序(没有http://10.0.2.2:<hostport>)
操作步骤如下:
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti