我正在使用 retrofit 2库分页,以无限滚动方式recyclerView
将服务器数据加载到我的应用中。但是不幸的是,在滚动某些页面改进onFailure
方法后,抛出了一条显示“ Unexpected end of stream
”的消息。此消息以任意页面显示。有时在滚动6页和有时12页之后显示。然后翻新不会加载任何内容。
有人可以提出一些可行的建议吗?
答案 0 :(得分:0)
您可以尝试
OkHttpClient client = new OkHttpClient.Builder()
.retryOnConnectionFailure(true)
.build();
答案 1 :(得分:0)
我最近遇到了这个问题,以下几方面的组合帮助了我
对于OkHttpClient,将连接失败重试设置为true
OkHttpClient client = new OkHttpClient.Builder()
.retryOnConnectionFailure(true)
.build();
由于这是由于连接未正确关闭引起的,因此在您的改装请求中添加一个Connection标头
@Headers({
"Connection: close"
})
@FormUrlEncoded
@POST(Const.CHAT_LIST_API)
Call<ResponseModel<ChatListModel>> chatList(
@Field("user_id") int userid,
@Field("device_type") int device_type,
@Field("token") String token,
@Field("language") String language,
@Field("timezone") String timezone
);
以上是将用于调用服务的接口方法。您需要将上面的标头部分添加到您的服务中
重试将基本上减少机会,实际的解决方法是通过标题
答案 2 :(得分:0)
只需将标题添加到您的请求中
@Headers({"Connection: close"})
这意味着您应在每次请求后关闭连接。