当前位置: 首页 > 知识库问答 >
问题:

改造v2。4.0不发送If Modified Since标头

谢鸿飞
2023-03-14

这可能是一个非常基本的问题,但我已经没有想法了
改装v2。4.0不会发送自头修改后的,因此缓存不起作用。

我每天轮询服务器几次,看看是否有任何更新的数据,因此需要如果修改自头。

基于本文,设置非常简单:https://futurestud.io/tutorials/retrofit-2-activate-response-caching-etag-last-modified
我读过几篇相关文章,但这些文章主要关注服务器实现无法访问或未发送头时的用例。这不是我的情况。这些建议使用networkInterceptors()。由于发送了正确的响应头,我不需要拦截器(我猜)。

从理论上讲,这应该是可行的。

根据响应头,服务器似乎已正确配置。

以下是代码:

HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.HEADERS);

Cache cache = new Cache(getApplication().getCacheDir(), 30 * 1024 * 1024);

httpClient = new OkHttpClient.Builder()
    .cache(cache)
    .addInterceptor(logging)
    .build();

retrofit = new Retrofit.Builder()
    .baseUrl("http://someserver:8080/")
    .callbackExecutor(Executors.newSingleThreadExecutor())
    .client(httpClient)
    .addConverterFactory(GsonConverterFactory.create())
    .build();

日志:

D/OkHttp:--

请让我知道我做错了什么。


共有1个答案

晁开宇
2023-03-14

服务器的缓存配置不正确。如果查看本文的疑难解答部分,您会注意到它需要是缓存控制:private,必须重新验证

 类似资料:
  • 问题内容: 如何在改造调用中发送byte []数组。我只需要发送byte []。当我尝试发送改造电话时,出现此异常。 retrofit.RetrofitError:retrofit.converter.ConversionException:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但在第

  • 我有一个对象,作为另一个GET请求的响应接收它<代码>jsonElement。toString() 看起来像JSON数组: 我需要通过另一个使用改装的POST请求发送此字符串。如何通过POST请求发送jsonElement或String对象?我的方法声明应该怎么看?例如:

  • 问题内容: 我是PHP的新手,我刚刚练习了PHP setcookie()并失败了。 http:// localhost / test / index.php http:// localhost / test / view.php 但是我无法运行index.php,像这样的IE警告。 毫无疑问,我启用了IE 6 cookie。 我上面的程序有什么问题吗?谢谢。 使用WinXP OS和XAMPP 1.

  • 我尝试使用JQuery Ajax进行基本身份验证。我像这样向ajax请求添加授权标头。 然后在ASP. Net Web服务中,我尝试获取此标头。 当我打印到标题时,我看不到授权标题 缓存控制:无缓存连接:保持活动状态Pragma:无缓存接受:接受编码:gzip,deflate接受语言:tr tr,tr;q=0.9,en-US;q=0.8,en;q=0.7主机:示例。com参考:http://loc

  • 本文向大家介绍PHP 警告:无法修改标头信息-标头已发送,包括了PHP 警告:无法修改标头信息-标头已发送的使用技巧和注意事项,需要的朋友参考一下 示例 外观: 当脚本尝试将HTTP标头发送到客户端但之前已经有输出时,会发生此情况,这导致标头已经发送到客户端。 可能的原因 : 打印,回显:打印和回显语句的输出将终止发送HTTP标头的机会。必须对应用程序流程进行重组以避免这种情况。 原始HTML区域

  • 有没有人知道如何发送,如果修改后,因为标题与网址请求? 我正在尝试获取状态代码,它会告诉我RSS页面是否已更新。 更新#1:我能够进行以下测试: 但奇怪的是,如果我删除整个iOS应用程序并运行它,我会得到304状态代码。但是,如果我注释掉添加if Modified Since值的行并重新运行它,那么我得到的是200,但是当我取消注释该行并重新执行它时,304错误不会返回……它是一个200错误代码。