我正在尝试连接到localhost:3000/fullAndroid 上的 Retrofit。public class RestManager {private QaraSozService qaraSozService;public QaraSozService getQaraSozService() { if (qaraSozService == null) { Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://localhost:3000") .addConverterFactory(GsonConverterFactory.create()) .build(); qaraSozService = retrofit.create(QaraSozService.class); } return qaraSozService;}}public interface QaraSozService {@GET("/full")Call<List<QaraSoz>> getAllQaraSoz();}但是当我尝试连接时出现 onFailure,我收到错误消息 Failed to connect to localhost/127.0.0.1:3000为什么android尝试连接localhost/127.0.0.1:3000而不是localhost:3000?
2 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
我看到它是 Ubuntu,所以请执行以下步骤:- - 从终端类型 >> ifconfig 这将打印出您的机器 wlan ip 地址您将使用的这个 ip 而不是 127.0.0.1 所以从您的浏览器中-您可以通过以下方式测试它输入 wlanip:3000 这应该等同于 localhost:3000。- 如果您遇到问题,您可能需要从终端禁用 Ubuntu 防火墙 >> sudo ufw disable - 确保您的 Android 设备和您的 Ubuntu 机器连接到同一网络,然后在您的 Android 代码中替换 127.0.0.1 后测试您的应用程序到您从 ifconfig 命令获得的那个
神不在的星期二
TA贡献1963条经验 获得超6个赞
在台式机/笔记本电脑,你API服务器运行,如果你试图连接到来自移动设备的这个API,你应该设置IP你的台式机/笔记本电脑的baseUrl不是本地主机(是这样的:baseUrl("http://192.168.0.1:3000")
)
确保您的服务器和您的移动设备在同一本地网络中。
或者,如果您使用 android 模拟器而不是真实设备,则应使用 ip 10.0.2.2。更多信息:https : //developer.android.com/studio/run/emulator-networking
10.0.2.2 主机环回接口的特殊别名(即开发机器上的 127.0.0.1)
添加回答
举报
0/150
提交
取消