我已经在 localhost 上创建了一个PHP脚本,并且正在使用httpClient
进行连接,但是我遇到了问题。
请告诉我如何从仿真器连接到位于 localhost 的PHP文件?
我已经在 localhost 上创建了一个PHP脚本,并且正在使用httpClient
进行连接,但是我遇到了问题。
请告诉我如何从仿真器连接到位于 localhost 的PHP文件?
10.0.2.2
访问你的实际物理机器。如你所知,当你使用模拟器时,localhost
(127.0.0.1
) 是指设备自身的本地服务,而不是你所期望的计算机上的服务。
你可以使用 10.0.2.2
来访问你的实际物理机器,这是一个设置的别名,以帮助开发。
默认 AVD 请使用 10.0.2.2
,Genymotion 请使用 10.0.3.2
http://10.0.2.2:[您的端口号]/
,并在模拟器设置中添加代理地址为10.0.2.2和端口号。如需了解更多,请访问:https://developer.android.com/studio/run/emulator-networking.html
这是最终为我工作的方法。
配置您的Android模拟器代理,使用您的IP地址作为主机名,使用后端运行的端口作为端口(在我的情况下:192.168.1.86:8080)。
让您的Android应用程序向相同的URL发送请求(192.168.1.86:8080)(向本地主机发送请求,以及http://10.0.2.2对我无效)。
感谢这篇博客的作者:https://bigdata-etl.com/solved-how-to-connect-from-android-emulator-to-application-on-localhost/
在XML文件中定义网络安全配置。
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">10.0.2.2</domain>
</domain-config>
</network-security-config>
将其设置在AndroidManifest.xml
上
<application
android:networkSecurityConfig="@xml/network_security_config"
</application>
对我解决了问题!
请参考:https://developer.android.com/training/articles/security-config
您应该使用以下命令更改adb端口:
adb reverse tcp:8880 tcp:8880; adb reverse tcp:8081 tcp:8081; adb reverse tcp:8881 tcp:8881
将localhost替换为IP地址。
127.0.0.1
吗? - Sazzad Hissain Khan