我已经在localhost内创建了一个php脚本,我正在连接httpClient,但我遇到了一个问题。

请告诉我如何从模拟器连接到localhost的php文件?


当前回答

默认AVD使用10.0.2.2,Genymotion使用10.0.3.2

其他回答

您应该使用以下命令更改adb端口:

adb reverse tcp:8880 tcp:8880; adb reverse tcp:8081 tcp:8081; adb reverse tcp:8881 tcp:8881

使用10.0.2.2访问您的实际计算机。

正如您所了解的,在使用模拟器时,localhost(127.0.0.1)指的是设备自己的环回服务,而不是您所期望的机器上的环回服务。

您可以使用10.0.2.2访问您的实际计算机,它是一个别名,用于帮助开发。

而不是localhost,而是IP。

感谢本博客的作者: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

默认AVD使用10.0.2.2,Genymotion使用10.0.3.2