Fuel Android - 制作非缓存请求

时间:2018-05-22 22:28:05

标签: android kotlin http-headers get-request

在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中的答案很好。

1 个答案:

答案 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)
                }
            }
        }