在Android中,我使用Kotlin库Fuel来获取JSON文件。 现在,我的代码看起来像这样(url是string类型的变量):
url.httpGet().responseJson { _, _, result ->
when(result) {
is Result.Failure -> {
//Do Stuff
}
is Result.Success -> {
//Do Stuff
}
}
}
但是,我想要获取位于url
的未缓存版本的JSON文件。
我读过这篇文章:fetch(), how do you make a non-cached request?似乎我必须添加标题" pragma:no-cache"和"缓存控制:无缓存"根据我的要求。我怎么能这样做?
另外 - 为了调试目的,我有没有办法验证这两个标头是作为我的请求的一部分发送的?
虽然我的代码示例在Kotlin中,但我在Java中的答案很好。
答案 0 :(得分:2)
这是添加标题的方式:
url.httpGet().header(Pair("pragma","no-cache"),Pair("cache-control","no-cache")).responseJson //Rest of code goes here
您可以验证是否正在使用请求发送标头:
url.httpGet().header(Pair("pragma","no-cache"),Pair("cache-control","no-cache")).responseJson { request, _, result ->
//Log the request in string format. This will list the headers.
Log.d("TEST-APP", request.toString())
when(result) {
is Result.Failure -> {
cont.resumeWithException(result.getException())
}
is Result.Success -> {
cont.resume(JsonParser().parse(result.value.content) as JsonObject)
}
}
}