首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Compose 新闻App(一)网络框架搭建

    Compose 新闻App(一)网络框架搭建 前言 正文 一、项目创建 二、依赖配置 三、数据API 四、网络框架构建 五、项目配置 六、网络请求 七、源码 前言   要去学习新的知识,光是简单的使用还是不够的...正文   最近觉得Compose很有意思,想要去写一个关于Compose的系列文章,做一个简单的新闻App,话不多说,我们新建一个项目吧。...之前用Java写网络框架时是通过Okhttp、Retrofit、rxJava、那么在Kotlin中就使用Retrofit和协程来操作,在app的build.gradle的dependencies{}闭包中添加如下代码...现在数据有了,下面就是通过这个接口去进行网络请求了。...接着,await()函数中使用了suspendCoroutine函数来挂起当前协程,并且由于扩展函数的原因,我们现在拥有了Call对象的上下文,那么这里就可以直接调用enqueue()方法让Retrofit

    2.7K20

    Gradle 构建工具 #5 又冲突了!如何理解依赖冲突与版本决议?

    在前文 Gradle 构建工具 #3 Maven 发布插件使用攻略(以 Nexus / Jitpack 为例) 和 Gradle 构建工具 #4 来开源吧!...发布开源组件到 MavenCentral 仓库超详细攻略 文章中,我们已经讨论过如何发布组件到 Nexus 企业私有仓库或 MavenCentral 中央仓库的方法。...如果模块 B 不使用快照版本(例如版本为 1.0.0),那么当 B 模块在开发阶段需要更新,A 模块就无法接收到更新。...但是如果模块想单独编译,那么还是需要指定版本的,毕竟没有约束源就无法确定版本。...今天我们学习了 Gradle 的依赖冲突与版本决议原理,在下一篇文章中我们将会落实到 Gradle 源码上进行分析,请关注。

    74930

    抛开理论,从实践中剖析Rertrofit原理

    回顾 Retrofit2.0是SQUARE美国一家移动支付公司最新发布的在Android平台上http的resultful访问客户端,具体简单用法列举!...下文开始之前,不会对Retrofit的原理进行理论分析,其实也没这个必要,推荐一篇其他人写的文章: 接着本次实现方式不会沿用Retrofit基于的okhttp, 因为okHttp本身实现了已进行了线程管理和回调...线程池工厂 用来管理和复用线程,避免线程溢出造成内存泄露,不是本次关注的点,略去 ---- 实现好了自己的Retrofit,接下来再看看怎样使用,观察下和Retrofit用法有什么区别?...与其说是对Retrofit的借鉴,还不如是对Ioc和Aop思想的综合运用。...领导都无法阻止你用Retrofit的步伐… 源码:https://github.com/Tamicer/Tamic_Retrofit 技术 - 资讯 - 感悟 END

    51730

    Android MVI框架搭建与使用

    MVI框架搭建与使用 前言 正文 一、创建项目 ① 配置AndroidManifest.xml ② 配置app的build.gradle 二、网络请求 ① 生成数据类 ② 接口类 ③ 网络请求工具类...本文完成后的效果图: 正文   每当一个新的框架出来,都会解决掉上一个框架所存在的问题,但同时也会产生新的问题,瑕不掩瑜,可以在实际开发中,解决掉产生的问题,就能够更好的使用框架,那么MVI解决了MVVM...二、网络请求   当我们使用Kotlin时,网络访问就变得更简单了,只需要Retrofit和协程即可,首先我们在com.llw.mvidemo包下新建一个data包,然后在data包下新建一个model...作为网络接口请求的地址头,然后构建了MoShi,通过MoShi去进行JSON转Kotlin数据类的处理,之后就是构建Retrofit,将MoShi设置进去,最后就是通过Retrofit创建一个网络请求服务...这里对_state首先赋值为Loading,表示加载中,然后进行一个网络请求,结果就是成功或者失败,如果成功,则赋值Wallpapers,View中收集到这个状态后就可以进行页面数据的渲染了,请求失败,

    3.5K40

    Android 天气APP(三十五)修复BUG、升级网络请求框架

    修复BUG、升级网络请求框架 前言 正文 一、显示bug 二、数据访问bug 三、程序崩溃 四、小米8上的崩溃 前言   之前在GoodWeather2.6的时候陆陆续续出现了一些小bug,只不过是一句话就能改好...正文   这些问题的出现一般来说是我当时写代码没有注意到的细节,如果你是复制粘贴我的代码可能也会出现同样的问题。...还有一个显示bug,是在查询城市失败的时候没有关闭加载弹窗,导致无法操作页面。...这个框架其实我单独写过一篇文章来介绍,文章地址如下: Android OkHttp+Retrofit+RxJava搭建网络访问框架(含源码) 想要详细了解里面过程的可以看看,不打算了解的,直接复制代码到使用的地方就可以了...还是一个地方就是ApiService的修改,之前用的是Retrofit2的Call来进行回调,现在是使用RxJava的Observable来进行。 因此每一个接口都需要更改。

    38110

    Retrofit原理_Retrofit

    在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,Retrofit根据用户的需求对结果进行解析。...可以通过注解直接配置请求,可以使用不同的http客户端,虽然默认是用http ,可以使用 不同Json Converter 来序列化数据,同时提供对RxJava的支持,使用Retrofit + OkHttp...Okhttp给用户留下的问题: 1)用户网络请求的接口配置繁琐,尤其是需要配置请求body,请求头,参数的时候; 2)数据解析过程需要用户手动拿到responsbody进行解析,不能复用; 3)无法适配自动进行线程的切换...对,retrofit!...那么大家一定要关注一个细节,我们在使用retrofit的时候,对每一个网络请求的产生都必须要先调用create函数,也 就是意味着,我们的请求都是通过代理类来进行处理的。

    76330

    RetrofitOkhttp 网络接口加固技术实践(上)

    /sk719887916/article/details/51597816),那篇文章介绍了怎么使用Retrofit,并且在遇到okhttps的使用方式,但对于加密我们还是无法了解太多,对于安全性要求很高的接口场景还是无法满足...Api加固除了本身支持Https,还会额外进行上图一系列的加密策略,自定义对Resquest/Response Data进行加密,对url加密,甚至对request进行校验等。...解密过程也直接使用map操作符转换后返回给业务层。 HTTPS 以前写过一篇文章可以参考 :Retrofit 2.0 超能实践(一),完美支持加密Https传输,怎么让自己api加入SSL认证。...,这样普通的用户无法感知具体路径真实值是什么,甚至一般黑客都无法轻易解析具体内容,服务端拿到具体值的策略也是一样 只要服务端按约定的好的算法进行解码就行了。...一般我们可以用okhttp的Interceptor 进行处理。 可以在发送报文前,对参数进行加密转码。

    79010

    高级工程师的不二之选,Github常年霸榜的超强框架

    每个Android开发者在产品开发的过程中,都需要用到网络和服务器进行交互。...而对于网络框架的使用和理解,往往可以看出一个开发者到底处于什么段位: 初级工程师:虽然也会使用OkHttp、Retrofit等框架,但基本都是机械的套用,对其源码、核心原理所知甚少,需要付出大量的时间研究源码...所以基于OkHttp进行封装的Retrofit基本是他们的不二之选,且在支持converter扩展和rxjava,扩展性不好对他们高超的重构和封装技巧根本不是问题。...但是在实际开发过程中,大家还是会遇到不少问题:无法适配自动线程的切换、调用复杂、网络请求接口配置繁琐、缓存失效……。而Retrofit的二次封装,可以很好地解决这些问题,为OkHttp如虎添翼。...Retrofit的注解是怎么解析的? Retrofit网络请求层用的什么? Retrofit中使用了哪些设计模式? Retrofit在OkHttp上做了哪些封装?

    49140

    RetrofitOkhttp API接口加固技术实践(上)

    /details/51597816) 文章介绍了怎么使用Retrofit,并且在遇到okhttps的使用方式,但对于加密我们还是无法了解太多,对于安全性要求很高的接口场景还是无法满足,今天就来介绍下对普通...Api加固除了本身支持Https,还会额外进行上图中一系列的加密策略,自定义对Resquest/Response Data进行加密,对url加密,甚至对request进行校验等。...,这样普通的用户无法感知具体路径真实值是什么,甚至一般黑客都无法轻易解析具体内容,服务端拿到具体值的策略也是一样 只要按约定的好的算法进行解码就行了。...可以在发动报文前,对参数进行加密转码。...,详情可以参考:OAuth 工作原理,那么很多时候我们也要对服务端返回的数据进行校验解密,后续带来对Response反解密一文(Retrofit/Okhttp API接口加固技术实践(下))。

    65420

    2018年不能错过的 14 个 Java 库!

    (4)对响应进行 缓存 ,可以完全避免重复请求的网络。 ? Retrofit 用于Android的类型安全的HTTP客户端,能够将HTTP API转为Java接口。 ?...Retrofit会产生上面GitHubService的实现类: ?...MBassador MBassador是一种轻量级,高性能的事件总线,实现发布订阅模式。它为易于使用而设计,功能丰富且可扩展,同时保持资源效率和高性能。...WireMock 模拟HTTP服务的工具: HTTP响应stubbing存根,匹配HTTP的URL、头部和正文内容 请求验证 在单元测试中运行,作为独立进程或作为WAR应用程序运行 可通过流畅的Java...API,JSON文件和通过HTTP的JSON进行配置 记录/回放存根 故障注入 每次请求的条件代理 浏览器代理请求检查和替换 状态行为模拟 可配置的响应延迟 ?

    1.6K10

    干掉 Feign,Spring Cloud Square 组件发布

    Spring Cloud Square 是什么 谈起 Spring Cloud 生态大家一定对 Feign 不陌生,如下图所示,Feign 可以把底层(okhttp、httpclient)Rest 的请求进行隐藏...使用 Feign 调用 API 就像调用本地方法一样,从避免了调用目标微服务时,需要不断的解析/封装 json 数据的繁琐。 ?...Spring Cloud Square 项目旨在替代原有的 Spring Cloud Feign , 借助 Retrofit 对底层通信类库的封装实现跨服务调用,目前已在 spring-cloud-incubator...孵化器进行孵化 (上一个在孵化器孵化 spring-cloud-loadbalancer 已经正式接替 Ribbon 成为正式推荐组件)。...添加依赖 由于目前 spring-cloud-square 未正式发布,需要配置 spring maven 仓库。

    1.1K20

    高级工程师的不二之选,Github常年霸榜的超强框架-Retrofit

    前言 每个Android开发者在产品开发的过程中,都需要用到网络和服务器进行交互。...而对于网络框架的使用和理解,往往可以看出一个开发者到底处于什么段位: 初级工程师:虽然也会使用OkHttp、Retrofit等框架,但基本都是机械的套用,对其源码、核心原理所知甚少,需要付出大量的时间研究源码...所以基于OkHttp进行封装的Retrofit基本是他们的不二之选,且在支持converter扩展和rxjava,扩展性不好对他们高超的重构和封装技巧根本不是问题。...但是在实际开发过程中,大家还是会遇到不少问题:无法适配自动线程的切换、调用复杂、网络请求接口配置繁琐、缓存失效……。而Retrofit的二次封装,可以很好地解决这些问题,为OkHttp如虎添翼。...现在BATJ等大厂的面试套路都是一样的:他们会让你谈谈Retrofit的具体使用,你有在自己的项目中使用过吗?

    52930

    Android技能树 — 网络小结(7)之 Retrofit源码详细解析

    Android技能树 — 网络小结(6)之 OkHttp超超超超超超超详细解析 Android技能树 — 网络小结(7)之 Retrofit源码详细解析 ---- 正文 因为我平时使用的都是Rxjava2...读本文的我推荐大家最好对OKHttp源码有所了解,再来看本文,因为Retrofit内部还是通过OkHttp发出网络请求。...Retrofit 2.0 的详细 使用攻略(含实例讲解) Android:Retrofit 结合 RxJava的优雅使用(含实例教程) 我们先上一张别的大佬博客中的一张图: ?...我更喜欢是跟着源码一步步来画流程图(PS:其实是我水平太差了,无法一下子总结处第三方库的各种设计模式的使用),所以Retrofit我也画了下面这个图: ?...annotation found.”); } //'然后对我们写的方法内部参数注解进行判断,看写的是否正确等 这里的判断很长,比如如果你用的是注解

    1.3K40

    RxJava从入门到不离不弃(八)——使用场景

    RxJava系列的文章已经写了有七篇了,相信读者已经对它比较熟悉了。 介绍了那么多,那么到底RxJava在真实开发中会有哪些地方用到呢?今天和大家介绍一下它的经典使用场景。...使用Retrofit 的传统 API,你可以用这样的方式来定义请求: @GET("top250") Call getTopMovie(@Query("start") int start...start, @Query("count") int count);//RxJava返回Observable对象 Retrofit本身对Rxjava提供了支持,getMovie方法改为: //进行网络请求...通过 RxBinding 把点击监听转换成 Observable 之后,就有了对它进行扩展的可能。扩展的方式有很多,根据需求而定。...总结 简而言之Rxjava是一个很牛逼的库,如果你的项目中还没有使用RxJava的话,建议可以尝试去集成使用;对大多数人而已RxJava是一个比较难上手的库了,不亚于Dagger的上手难度;不过当你认识学习使用过了

    69810

    Android MVP+RxJava+Retrofit (2) RxJava+Retrofit

    Retrofit的使用 先简单介绍一个网络请求的例子,注解之类的放在后面去说 (1) 添加Retrofit库的依赖 implementation "io.reactivex.rxjava2:rxjava...@HTTP替换@GET、@POST、@PUT、@DELETE、@HEAD注解的作用 及 更多功能拓展 具体使用:通过属性method、path、hasBody进行设置 第二类 标记 @FormUrlEncoded...请求体是是是一个表单数据 表示发送form-encoded的数据,每个键值对需要用@Filed来注解键名,随后的对象需要提供值 @Multipart 请求体是一个支持文件上传的表单数据 表示发送...大体使用情况,接下来就简单的介绍RxJava的使用,Retrofit 与RxJava 一百度就很多原理之类的大体说的都差不多,大同小异.我主要以实战为主,如何使用 稍带点基础… 初始化Retrofit的时候的必要配置...下一篇巩固一下.我这里说的RxJava过于潦草,如果有深入了解的童鞋,我推荐看一下 Carson_Ho大神的文章 https://www.jianshu.com/nb/14302692 希望可以帮到你 发布者

    74730
    领券