我使用kotlin和fuel从API服务获取大数据json,但是很难处理错误403 Forbidden,所以我使用标志来重新调用此API从API获取数据,另一个错误是OutOfMemoryError,因为它没有删除code_cache,所以如果Result.Failure,如何删除code_cache。或者,如果您有任何想法,请帮助我。感谢收看。
我的代码:
val requestParams = ArrayList<Pair<String, Any>>(2)
requestParams.add(Pair("method", "ListMedicalTerm"))
requestParams.add(Pair("offset", offset))
requestParams.add(Pair("limit", limit))
var flags = 0
do {
Urls.getMedicalTermList().httpPost(requestParams).responseJson { _, response, result ->
when (result) {
is Result.Failure -> {
flags += 1
Log.d("Error", flags.toString())
}
is Result.Success -> {
flags = 1
try {
val med_respone = result.get().content
var gson = GsonBuilder().setLenient().create()
val res_data = gson.fromJson(med_respone, ResponeMedicalTerm::class.java).data
responeHandler.invoke(res_data as ArrayList<MedicalTerm>)
} catch (ex: Exception) {
Log.d("Error", ex.toString())
}
Thread.sleep(1000)
}
}
}
} while (flags == 0)