嗨,我有一个在我的计算机上运行的服务器应用程序,为了在我的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代码?