错误的Android应用上的HTTP请求超时

时间:2019-09-30 22:45:16

标签: android http kotlin okhttp

嗨,我有一个在我的计算机上运行的服务器应用程序,为了在我的android应用程序上使用它,我使用servo来获取本地主机的全局域,如下所示:

ssh -R myexpressjsproject:80:localhost:3000 serveo.net 

在我的android应用程序上,我确实发布了这样的信息:

fun getServerResponse(json : String){
    val neabyURL = url + "nearby"
    val client = OkHttpClient()
    client.setConnectTimeout(30, TimeUnit.SECONDS);
    client.setReadTimeout(30, TimeUnit.SECONDS);
    client.setWriteTimeout(30, TimeUnit.SECONDS);
    val JSON = MediaType.parse("application/json;charset=utf-8")
    val Body = RequestBody.create(JSON , json)
    val newReq = Request.Builder()
        .url(neabyURL)
        .post(Body)
        .build()
    try{

        val response : Response = client.newCall(newReq).execute()
        val responseStr : String = response.body().string()
        val Jobject = JSONObject(responseStr)
        lastCheckId = Jobject.getString("ca")


    }catch (e : Exception){
        Log.i("sending" , "problem happened")

        e.printStackTrace()
        return
    }
}

问题是我的API随机出现此错误:

java.net.SocketTimeoutException

每一次都是我得到此错误的API之一,尽管我在邮递员上立即获得了请求响应,并且服务器端应用程序没有错误。 您是否认为这是由于Servo的原因,如果我在真实服务器上运行它会解决该问题,还是因为我的Android代码?

0 个答案:

没有答案