Android Kotlin Volley缓慢请求重复get请求



我使用Volley框架向我的Flask API发出GET请求。这是我使用的语法:

val jsonObjectRequest =
JsonObjectRequest(Request.Method.GET,  url, null, { response ->
val spiScanApiResponse = response["success"] as String
if (spiScanApiResponse == "true") {
Toast.makeText(this, "SCANS SENT WITH SUCCESS!", Toast.LENGTH_LONG).show()
finish()
} else {
Toast.makeText(
this,
"SCANS WERE NOT SENT!",
Toast.LENGTH_LONG
)
.show()                            
}
},
{
}
)
queue.add(jsonObjectRequest)

我收到这个"Volley: [111] NetworkUtility。logSlowRequests: HTTP响应请求=<[] https://myUrl 0xbeaaf2f6 NORMAL 1>[lifetime=6596], [size=114], [rc=200], [retryCount=1];这是复制GET请求,并发送两次数据到我的数据库。

从我读到这是一个RetryPolicy/超时问题,但我找不到任何东西来帮助使用Kotlin,我得到的所有可能的答案都在Java中,我找不到任何关于Kotlin版本的RetryPolicy或超时。

是否有办法让这个工作使用Volley?我不想把我所有的请求都切换到另一个框架,因为这是唯一一个不能工作的请求。

谢谢!

我终于弄明白了,在Kotlin中是这样的:

不再有重复的请求,我必须在将其添加到队列之前设置jsonObjectRequest.retryPolicy,如下所示:

jsonObjectRequest.retryPolicy = 
DefaultRetryPolicy(
0,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT
)
queue.add(jsonObjectRequest)

就是这样。现在它就像一个魅力!我希望这对其他人也有帮助。

最新更新