首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于 RxJava2+Retrofit2 精心打造的 Android 基础框架 XSnow

XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载、UI模块,基本都是项目中必用功能,每个模块充分解耦,...、主机URL、请求头、请求参数、代理、拦截器、Cookie、OKHttp缓存、连接超时时间、读写超时时间、失败重试次数、失败重试间隔时间的一系列配置。...支持OKHttp本身的Http缓存,也支持外部自定义的在线离线缓存,可配置缓存策略,共有五种缓存策略,如优先获取缓存策略,具体实现参考http包下的strategy包。...支持失败重试机制,可配置失败重试次数以及重试时间间隔。 支持根据Tag中途取消请求,也可以取消所有请求。...数据库 简介: 采用greenDao数据库,其优势就不多说了,网上有解释,其主要优点就是性能高。

1.2K70

spring cloud网关之zuul

由于各种各样的原因我们可能会出现请求偶然失败,这时候我们就可能需要使用ribbon的重试功能,zuul默认结合ribbon zuul: retryable: true #开启重试 ribbon:...决定切换次数) 上面配置一共会调用4次(原本主机1次,失败重试,切换主机调用一次 失败重试1次) ribbon 总超时时间(conn_time+read_time)(MaxAutoRetries + 1...我们可以使用okhttp来替换 okhttp优点: 1.对同一个主机发出的所有请求都可以共享相同的套接字连接。...4.OkHttp 也提供了对 HTTP 响应的缓存机制,可以避免不必要的网络请求。 5.当网络出现问题时,OkHttp 会自动重试一个主机的多个 IP 地址。 1.引入依赖 OKHttp 支持 --> com.squareup.okhttp3 okhttp</artifactId

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用OkHttp进行网络同步异步操作

    OkHttp是一个Java和Android的HTTP和HTTP/2的客户端,负责发送HTTP请求以及接受HTTP响应。 一、使用OkHttp OkHttp发送请求后,可以通过同步或异步地方式获取响应。...下面分别介绍: Request 每一个HTTP请求包含一个URL、一个方法(GET或POST或其他)、一些HTTP头。请求还可能包含一个特定内容类型的数据类的主体部分。...OkHttp将会重定向获取最终的响应。 请求重试 有时连接会失败,那么OkHttp会重试别的路由。 Call 当重写、重定向等时,一个请求可能会产生多个请求和响应。...允许短路,可以不调用Chain.proceed()方法 允许重试和发送多条请求,调用Chain.proceed()方法 网络拦截器 可以操作中间状态的响应,比如重定向和重试 不调用缓存的响应 可以观察整个网络上传输的数据...进行GET的同步、异步请求,对于HTTP其他方法,比如POST等都是可以进行的,这儿就不过多介绍了,想了解的朋友可以到OkHttp Github地址查看.

    4.7K10

    掌握这些Android网络编程面试题,让你在面试中脱颖而出

    HTTP请求和响应都有固定的格式,比如请求方法(GET、POST、PUT、DELETE等),这些方法就像是你给朋友信里的不同指令。...GET是用来获取数据的,POST是用来提交数据的,PUT和DELETE就更少见些,用来更新和删除数据。...缺点 依赖OkHttp:Retrofit底层依赖OkHttp,所以需要同时引入OkHttp。...OkHttp就像是一个专业的邮递员,能高效地帮你发送和接收信件。 优点 高效:支持HTTP/2和同步/异步请求,性能出色。 功能强大:支持连接池化、自动重试和恢复、响应缓存等。...如何实现网络请求的重试机制? 重试机制就像是邮递员送信失败后,再试几次。在Retrofit和OkHttp中,可以通过拦截器实现重试机制。

    9700

    【OkHttp】OkHttp 源码分析 ( OkHttpClient.Builder 构造器源码分析 )

    OkHttp 系列文章目录 【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置...networkSecurityConfig | 配置 ViewBinding | 代码示例 ) 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求...| 同步 Post 请求 | 异步 Post 请求 ) 【OkHttp】OkHttp 上传图片 ( 获取 SD 卡动态权限 | 跳转到相册界面选择图片 | 使用 OkHttp 上传图片文件 ) 【OkHttp...OkHttpClient() { this(new Builder()); } 分析 OkHttpClient.Builder 创建者中可以设置的成员 : 调度器 : 处理 Get / Post...Socket 连接 , HTTPS 中的 TLS ( 配置安全传输层协议 ) 版本 和 密码套件 ; List connectionSpecs; 拦截器 : 监听 , 重写 , 重试

    86520

    从MySQL到AWS DynamoDB数据库的迁移实践

    在非关系型数据库中,我们选取了几种主流的数据库进行对比。这里列出其中应用较为广泛的 MongoDB 以及 DynamoDB 进行对比,如下表所示。...根据上述对比,基于 DynamoDB 有着更加完善的安全服务及灾备容错能力,并且与 FreeWheel 的 AWS 云服务相匹配,因此我们最终决定选用 DynamoDB 作为迁移的数据库对象。...3 DynamoDB 技术特性 AWS DynamoDB 是一种完全托管的无服务器(Serverless)类型的 NoSQL 数据库,可以通过 HTTP API 来使用。...这个过程中我们发现 NoSQL 带来的性能提升还是很大的,比如原来在 MySQL 中一个更新需求涉及到多张表可能需要建立几个甚至更多的数据库链接,而在 DynamoDB 中只要一个数据库操作就能完成整条记录的更新...针对这一问题,我们在服务端增加了重试逻辑,如果没有拿到新创建的数据,最多会重试三次。

    8.6K30

    【说站】Forest v1.5.3 正式版本发布

    它大概长这个样子: // Get请求 // 并以 String 类型接受数据 String str = Forest.get("/").executeAsString();   // Post请求 //... 引用类传递泛型参数 // 就可以将响应数据以带复杂泛型参数的类型接受了 Result> userList = Forest    .post("/")    .execute(new...("/")       .backend("okhttp3")        // 设置后端为 okhttp3       .contentTypeJson()         // 设置 Content-Type... 1       .addBody("b", 2)           // 添加 Body 项(键值对:  b, 2       .maxRetryCount(3)          // 设置请求重试次数为...请求成功条件/重试条件 @Success 注解 先要定义 SuccessWhen 接口的实现类 public class TestSuccessWhen implements SuccessWhen {

    36820

    超越架构师!消息通知系统优化设计

    用于存储联系信息的简化的数据库表模式。它是个带有电子邮件、电话、设备令牌和外部通道的单个NoSQL DynamoDB表。...查询数据库以获取生成通知事件所需的数据。 将通知数据推送到事件总线以进行并行处理。 联系人数据库 — 存储有关用户、联系信息、设置等数据的DynamoDB表。...关键是: 事件和推送通知中的安全性 通知模板和设置 可靠性和弹性 重试机制 速率限制 监视队列中的通知和事件跟踪 事件和推送通知的安全性 在存储敏感数据的情况下,我们应该启用DynamoDB的数据保护,...为了满足此要求,通知系统将通知数据持久保存在另一个日志表中,并实施重试机制。 接收一条通知确切地一次吗? — 不,不可以。...重试机制 当SNS/第三方服务无法发送通知时,通知将被添加到死信队列进行重试。如果问题仍然存在,将向负责的开发人员发送警报。 速率限制 我们应该考虑礼貌地发送通知。

    23810

    【转-干货】Retrofit2.0使用总结及注意事项

    Retrofit2通过OKHttp的拦截器拦截http请求进行监控,重写或重试等,包括日志打印等。...retryOnConnectionFailure:错误重联 addInterceptor:设置应用拦截器,可用于设置公共参数,头信息,日志拦截等 addNetworkInterceptor:网络拦截器,可以用于重试或重写...@POST("add") Call> addUser(@Body User user); @Field,@FieldMap:Post方式传递简单的键值对, 需要添加@FormUrlEncoded...我们可以通过自定义Interceptor来实现很多操作,打印日志,缓存,重试等等。...可参照: Retrofit+RxJava实战日志(3)-网络异常处理 retrofit-2-simple-error-handling 网络状态监听 一般在没有网络的时候使用缓存数据,有网络的时候及时重试获取最新数据

    5.5K30
    领券