区块链技术博客
www.b2bchain.cn

使用 BaseOkHttpV3 阻止重复请求求职学习资料

D0b2wT.gif

本文介绍了使用 BaseOkHttpV3 阻止重复请求求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

需求

遇到了个非常奇葩的问题才导致这个功能诞生的。一个项目里需要轮询一个接口,接口会给出消息,根据消息判断请求另一个接口后增加本地数据,结果服务端一次性给过来多条相同的消息导致本地异步执行了多次的更新数据接口导致本地数据重复。

另外日常开发组也经常遇到例如用户手抖导致多次请求的情况,那么实际上此问题是可以在框架层直接拦截处理的。

解决方案

每次请求的 URL 地址和参数都一致的情况,开启拦截选项后,同一请求地址同一请求参数的请求,在一个请求未结束前,将不允许再次请求逻辑。

BaseOkHttpV3下一版增加禁止重复请求功能,从原理上你再也不用担心用户手抖多按几次按钮的问题了。

在新版本 BaseOkHttpV3 中,需要先开启禁止重复请求的开关:

BaseOkHttp.disallowSameRequest = true;

原理

在 BaseOkHttp.java 中增加了一个存储队列:

static List<RequestInfo> requestInfoList;

每次发出一个新的请求后,会添加至此队列:

addRequestInfo(new RequestInfo(url, parameter));

而再次请求时,则会进行判断,若队列中存在此请求则会拦截:

if (disallowSameRequest && equalsRequestInfo(requestInfo)) {     //发生重复请求     return; }

而当请求完成,请求失败,超时等,则会从队列清除。
若有特殊情况额外需要多次快速建立请求的场景,可以按需求关闭此选项或在参数中添加时间戳以避免被当做重复请求。

使用

若正在使用 BaseOkHttpV3 框架,可更新至 3.1.9.5 测试版本:

//BaseOkHttp V3 网络请求库 implementation 'com.kongzue.baseokhttp_v3:baseokhttp_v3:3.1.9.5' //BaseJson 解析库 implementation 'com.kongzue.basejson:basejson:1.0.5'

文档请参阅:https://github.com/kongzue/BaseOkHttpV3

需求

遇到了个非常奇葩的问题才导致这个功能诞生的。一个项目里需要轮询一个接口,接口会给出消息,根据消息判断请求另一个接口后增加本地数据,结果服务端一次性给过来多条相同的消息导致本地异步执行了多次的更新数据接口导致本地数据重复。

另外日常开发组也经常遇到例如用户手抖导致多次请求的情况,那么实际上此问题是可以在框架层直接拦截处理的。

解决方案

每次请求的 URL 地址和参数都一致的情况,开启拦截选项后,同一请求地址同一请求参数的请求,在一个请求未结束前,将不允许再次请求逻辑。

BaseOkHttpV3下一版增加禁止重复请求功能,从原理上你再也不用担心用户手抖多按几次按钮的问题了。

在新版本 BaseOkHttpV3 中,需要先开启禁止重复请求的开关:

BaseOkHttp.disallowSameRequest = true;

原理

在 BaseOkHttp.java 中增加了一个存储队列:

static List<RequestInfo> requestInfoList;

每次发出一个新的请求后,会添加至此队列:

addRequestInfo(new RequestInfo(url, parameter));

而再次请求时,则会进行判断,若队列中存在此请求则会拦截:

if (disallowSameRequest && equalsRequestInfo(requestInfo)) {     //发生重复请求     return; }

而当请求完成,请求失败,超时等,则会从队列清除。
若有特殊情况额外需要多次快速建立请求的场景,可以按需求关闭此选项或在参数中添加时间戳以避免被当做重复请求。

使用

若正在使用 BaseOkHttpV3 框架,可更新至 3.1.9.5 测试版本:

//BaseOkHttp V3 网络请求库 implementation 'com.kongzue.baseokhttp_v3:baseokhttp_v3:3.1.9.5' //BaseJson 解析库 implementation 'com.kongzue.basejson:basejson:1.0.5'

文档请参阅:https://github.com/kongzue/BaseOkHttpV3

需求

遇到了个非常奇葩的问题才导致这个功能诞生的。一个项目里需要轮询一个接口,接口会给出消息,根据消息判断请求另一个接口后增加本地数据,结果服务端一次性给过来多条相同的消息导致本地异步执行了多次的更新数据接口导致本地数据重复。

另外日常开发组也经常遇到例如用户手抖导致多次请求的情况,那么实际上此问题是可以在框架层直接拦截处理的。

解决方案

每次请求的 URL 地址和参数都一致的情况,开启拦截选项后,同一请求地址同一请求参数的请求,在一个请求未结束前,将不允许再次请求逻辑。

BaseOkHttpV3下一版增加禁止重复请求功能,从原理上你再也不用担心用户手抖多按几次按钮的问题了。

在新版本 BaseOkHttpV3 中,需要先开启禁止重复请求的开关:

BaseOkHttp.disallowSameRequest = true;

原理

在 BaseOkHttp.java 中增加了一个存储队列:

static List<RequestInfo> requestInfoList;

每次发出一个新的请求后,会添加至此队列:

addRequestInfo(new RequestInfo(url, parameter));

而再次请求时,则会进行判断,若队列中存在此请求则会拦截:

if (disallowSameRequest && equalsRequestInfo(requestInfo)) {     //发生重复请求     return; }

而当请求完成,请求失败,超时等,则会从队列清除。
若有特殊情况额外需要多次快速建立请求的场景,可以按需求关闭此选项或在参数中添加时间戳以避免被当做重复请求。

使用

若正在使用 BaseOkHttpV3 框架,可更新至 3.1.9.5 测试版本:

//BaseOkHttp V3 网络请求库 implementation 'com.kongzue.baseokhttp_v3:baseokhttp_v3:3.1.9.5' //BaseJson 解析库 implementation 'com.kongzue.basejson:basejson:1.0.5'

文档请参阅:https://github.com/kongzue/BaseOkHttpV3

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 使用 BaseOkHttpV3 阻止重复请求求职学习资料
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们