Android 如何在Realt设备中使用改装连接到我的本地REST API

Android 如何在Realt设备中使用改装连接到我的本地REST API,android,retrofit,Android,Retrofit,嘿,我正在尝试使用安卓系统中的改型对本地主机服务器进行一些http调用 我尝试了我的本地ip,但没有成功 我得到这个错误: java.net.SocketTimeoutException: failed to connect to /192.168.1.52 (port 3000) after 10000ms 改造初始化 private val retrofit by lazy { Retrofit.Builder() .baseUrl("h

嘿,我正在尝试使用安卓系统中的改型对本地主机服务器进行一些http调用 我尝试了我的本地ip,但没有成功 我得到这个错误:

java.net.SocketTimeoutException: failed to connect to /192.168.1.52 (port 3000) after 10000ms
改造初始化

 private val retrofit by lazy {
        Retrofit.Builder()
            .baseUrl("http://192.168.1.52:3000/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
    }
我的API调用

interface ItemApi {

    @GET("items/{id}")
    suspend fun getItems(@Path("id")id:Int): Item
}

不知道如何在真正的设备上实现这一点,许多文章都说要使用本地ip,我做到了,但顶部的错误发生在模拟器上,您可以使用
10.0.2.2
访问您的本地计算机:

private val retrofit by lazy {
    Retrofit.Builder()
        .baseUrl("http://10.0.2.2:3000/")
        .addConverterFactory(GsonConverterFactory.create())
        .build()
}

这将比使用物理外部设备更容易,因为您不必处理网络防火墙

我认为在模拟器上测试它会更容易,您的Web服务部署在哪里?如果它在本地部署在您的pc上,很难说它是否可以从外部设备访问,即使您连接到同一个LAN(可能您的机器上有防火墙)