是 Paging3 当中重要成员 ) 使用 Data Mapper 分离数据源 和 UI Kotlin Flow 结合 Retrofit2 + Room 的混合使用 Kotlin Flow 与 LiveData...Kotlin Flow 是什么? Kotlin Flow 解决了什么问题? Kotlin Flow 如何在 MVVM 中使用?...Kotlin Flow 如何与 Retrofit2 + Room 混合使用?...Google 推荐在 MVVM 中 使用 Kotlin Flow Google 推荐在 MVVM 中使用 Kotlin Flow我相信如今几乎所有的 Android 开发者至少都听过 MVVM 架构,在...val netWorkPokemonInfo = api.fetchPokemonInfo(name) // 将网路请求的数据,换转成的数据库的 model,之后插入数据库
的过程中受到了一些阻力,现 Retrofit2 学会使用了,特此写此文验证所学知识。...先看看如何使用,如何进行一个简单的Get/Post请求 Retrofit2 入门 首先在build.gradle中添加如下代码,添加Retrofit2库 compile 'com.squareup.retrofit2...我在学习Android期间就是哪里有请求就放哪里,后来有人告诉我要集中存放。于是后来就建立一个AppURL.java所有地址都存放这里。...还有一些要求较高的请求,请看下节。 Retrofit2 大成 如果看到这里,相信对Retrofit2的基本请求会用了,那么这节就说一说其他的网络请求。.../json 动态请求头 @GET("地址") Call返回类型> 方法名(@Header("Location") String location); //使用 url
Retrofit2 是目前Android开发主流的网络库,RxJava2也是目前开发者使用的比较多用来更优雅实现异步的库,因为最近业务需求有用到这两个库,就简单分享下它的一个实际使用场景—上传文件 [TOC...定义上传文件接口 /** * 上传API....,@Url表示这是个请求地址,@Body表示这是请求体,关于Retrofit的各种注解的使用这里不多说,大家可以自行了解。...* * @param file 文件 * @param requestBody 请求体 * @return MultipartBody */...总结 通篇代码实现很多,但可以看到使用Retrofit2和RxJava2的结合起来使用还是挺方便的,再也不用自己去控制线程的切换了,也不用去关注http的具体实现,少写了不少代码,实现起来也优雅不少,希望这篇文章能帮助到大家
Web server and Web framework of Android platform....Android平台的Web服务器和Web框架。它提供类似SpringMVC的注释,如果您熟悉SpringMVC,您可以很快地掌握它。 静态html网站部署。 动态http api部署。...---- 功能介绍 本模版项目主要使用AndServer提供的服务搭建,内置常用的基础模块,功能如下. 统一的请求日志记录。 全局异常捕获处理,返回统一API结果。 增加全局权限验证拦截器。...返回Json格式 { "code":0, //响应码,0为成功,否则失败 "msg":"", //请求失败的原因说明 "data":{} //返回的数据对象 } 集成说明...AndServer 一个HTTP和反向代理服务器 XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装。
,这一方面是因为网络上的免费API接口返回的数据格式和访问模式(一般都只能使用 Get 模式)有限制,另一方面是因为并不是每位开发者都会写服务端接口。...,返回的数据格式有 Json 对象和 Json 数组,需要的参数格式可以由使用者来自由定义 本篇文章不会对 Retrofit2 的用法进行过多介绍,重点在于介绍服务端接口的搭建以及 Retrofit2...创建的工程目录如下所示,除了选中的三个文件之外,其它都是 IDE 自动为我们构建的,upload 文件夹用于存放客户端上传来的文件,resultJson.js 文件用于统一服务端返回的数据格式,api.js..., '系统错误'); }; resultJson.js 对网络请求的各种可能结果进行了封装,统一了服务端返回的数据格式。...方法,返回的数据格式如下所示 {"code":1001,"msg":"参数错误"} 其他非正常情况下返回的数据格式相同,仅仅是包含的返回码和返回信息值不同而已 1.2、api.js api.js 文件包含了所有接口
Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,如果看源码会发现其实质上就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底层...,其将请求返回javaBean,对网络认证 REST API进行了很好对支持此,使用Retrofit将会极大的提高我们应用的网络体验。...更多关于REST的介绍:什么是REST - GitHub讲解的非常详细 2.0与1.9使用比较 如果之前使用过Retrofit1,会发现2.0后的API会有一些变化, 比如创建方式,拦截器,错误处理,转换器等...,其中@Part MultipartBody.Part代表文件,@Part(“key”) RequestBody代表参数,需要添加@Multipart表示支持文件上传的表单,Content-Type:...无网读缓存,有网根据过期时间重新请求 用 Retrofit 2 简化 HTTP 请求 Retrofit请求参数注解字段说明 Android文件存储使用参考 - liaohuqiu Retrofit+RxJava
的接口 Retrofit将 Http请求 抽象成 Java接口:采用 注解 描述网络请求参数 和配置网络请求参数 public interface Api { @FormUrlEncoded...的数据,每个键值对需要用@Filed来注解键名,随后的对象需要提供值 @Multipart 请求体是一个支持文件上传的表单数据 表示发送form-encoded的数据(适用于 有文件 上传的场景),...,与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景,与 @Multipart 注解配合使用 实例2 上传文件 一定要使用 Multipart 关于文件...thumb); } 创建Retrofit 实例 上传文件+字段的时候 必须变为RequestBody 参数 方可才能上传 Retrofit retrofit2 = new Retrofit.Builder...如果使用Observable那就必须添加这个配置。否则就会请求的时候就会报错!
本文链接 OkHttp + Retrofit使用示例。从引入依赖,编写接口,到发起网络请求。...https://github.com/square/okhttp 简单使用 引入依赖 引入依赖,使用Retrofit2。...例如下面这个post请求。...public boolean verify(String hostname, SSLSession session) { return true; // 强制返回...OkHttp + Retrofit 使用示例 Android OkHttp + Retrofit 取消请求的方法 Android OkHttp + Retrofit 下载文件与进度监听 Android
请求,并且支持Multipart请求和文件上传。...:name="android.permission.INTERNET" /> 2、定义返回值实体类 这个类煲剧哦返回数据的所有属性 public class GitHubRepo { private...(一)、如何使用Retrofit和okHttp封装multipart/form-data 1、在retrofit2中: 使用** @retrofit2.http.Multipart : 标记一个请求是...3、Service接口定义 假设服务器上传接口返回数据类型为application/json,字段如下 { data: {}, msg: "上传成功", code: 200 } 因此需要对返回数据封装成一个对象...七、总结 Retrofit将REST API抽象成Java接口,使用注解来描述每一个API地址和请求,支持URL参数替换(包括查询参数和路径参数),以及表单编码和多部分请求功能。
为了验证,我特意用fiddler模拟了一次文件上传请求。 请求中要上传的信息有:{"auth": "qq", "openId": "...", "accessToken": "......学习retrofit上传文件的方法 可以先看看Retrofit2 multpart多文件上传详解和Retrofit实现文件上传(二) 接口设置可以分为以下几种: 使用@Multipart 使用@PartMap...} 这里的参数不能是@RequestBody UploadRequestBody body,否则会报org.springframework.web.HttpMediaTypeNotSupportedException...: Content type 'multipart/form-data;boundary=... not supported错误 原因: 使用在进行图片或者文件上传时 multipart/form-data...[额外问题] 设置springboot文件传输大小的限制 springboot的文件上传大小默认限制为1MB, 当传输较大的图片时,可能会有以下错误: org.apache.tomcat.util.http.fileupload.FileUploadBase
FromUrlEncoded使用 @Part 用于表单字段,Part和PartMap与@multipart注解结合使用,适合文件上传的情况 @PartMap 用于表单字段,默认接受类型是MapRequestBody>,可用于实现多文件上传 @Path 用于Url中的占位符 @Query 用于Get请求中的参数 @QueryMap 与Query类似,用于不确定表单参数 @Url 指定请求路径...数据(使用于有文件上传的场景),每个键值对需要用@Part来注解键名,随后的对象需要提供值 @Streaming 表示响应用字节流的形式返回,如果没有使用注解,默认会把数据全部载入到内存中,该注解在下载大文件时特别有用...file.exists()) { file.mkdir(); } //将文件转化为RequestBody对象 //需要在表单中进行文件上传时,就需要使用该格式:multipart/form-data...新版本的Retrofit已经可以方便使用Kotlin的协程。
这样,我们 也可以使用 Kotlin来先传统意义上的 HTML 页面了。 Kotlin Web 编程将会更加简单纯净。...开发中布局 XML文件的 DSL框架 Anko,它使用基于Kotlin 的DSL 来声明Android UI组件,而不是传统的XML。...url method 请求方法,例如 Get、Post 等,不区分大小写 body 请求头,为了简单起见我们直接使用 OkHttp的RequestBody类型 timeout 超时时间ms,我们设置了默认值是...return resp } 它返回请求的响应对象Response。...Kotlin 的扩展函数和高阶函数(Lambda 表达式),为定义Kotlin DSL提供了核心的特性支持。 使用DSL的代码风格,可以让我们的程序更加直观易懂、简洁优雅。
之前的一篇博客讲了Retrofit实现带进度下载的实现,算是Retrofit使用的“姐姐篇”,那今天我们就讲讲它的“妹妹篇“——用Retrofit实现带进度上传文件!...、错误回调和结束回调等四个方法。...其中我们在上传进度的回调中返回进度的百分比,在此可以将进度显示在控件上。如果你还有一些个性化的需求,可以自行添加。 四、网络工具类准备 对Retrofit进行简单封装。...,但是它提供了RequestBody 类,我们通过继承RequestBody类,重写writeTo方法即可获取上传进度!...2、接下来在重写的contentType()方法中返回文件类型mMediaType。
一个Class对象表示响应的Json数据对应的Model,以便在内部使用Gson来解析,以及网络请求的异步回调 NetCallback 我们不直接使用OkHttp提供的Callback 而是在内部简单的做了封装转换成项目自己的...通过简单的一个实现,我们成功验证了使用注解加动态代理的方式实现一个声明式的网络请求框架是可行的,那么后续我们需要继续完善这个项目,提供对更多请求方式 以及参数的支持 对于其他请求方式的支持,我们可以添加更多的表示请求方式的注解...ConverterFactory,该工厂类负责根据传入的Type类型,返回一个能够将该Type类型的对象转换成RequestBody的Converter 我们对Retrofit的构造函数以及paresePost...继续回到Http请求的声明中,目前我们方法所支持的返回类型都是OKHttp的Call对象,而Call对象从使用上来说,目前还是有些繁琐,原生的Call对象返回的是ResponseBody还需要开发者自己处理并做转换...JavaBean对象作为方法的返回值,但是这个设想存在这样几个问题 要实现直接返回Http结果则方法调用是同步调用,如果在主线程做IO请求肯定是不合理的 如果内部IO异常了,或者JSON转换失败了方法返回的是什么呢
—知识点专栏— 本文将对Spring Boot和Spring MVC框架中最核心、最高频使用的15个注解进行深度剖析。...它专门用于构建 RESTful API,其方法返回值(如Java对象、集合)会被自动转换为JSON或XML格式,直接写入HTTP响应体。...@RequestBody 与 @ResponseBody: 请求体与响应体的转换 @RequestBody: 用于读取HTTP请求体的内容,并使用HttpMessageConverter将其反序列化(如从...@RequestPart: 处理文件上传 用于将multipart/form-data请求中的某个**部分(Part)**的数据绑定到方法参数上,通常用于文件上传。...在未来的Spring版本中,更多的功能将以函数式编程和Kotlin/Coroutines的形式出现,但这些核心的注解仍将是Java Spring开发的主流范式。
这样,我们 也可以使用 Kotlin来先传统意义上的 HTML 页面了。 Kotlin Web 编程将会更加简单纯净。...OkHttp 是一个成熟且强大的网络库,在Android源码中已经使用OkHttp替代原先的HttpURLConnection。...url method 请求方法,例如 Get、Post 等,不区分大小写 body 请求头,为了简单起见我们直接使用 OkHttp的RequestBody类型 timeout 超时时间ms,我们设置了默认值是...: (Throwable) -> Unit) 请求失败回调函数 http 执行引擎 我们直接调用 OkHttp 的 Http 请求 API private fun call(wrap: HttpRequestWrapper...Kotlin 的扩展函数和高阶函数(Lambda 表达式),为定义Kotlin DSL提供了核心的特性支持。 使用DSL的代码风格,可以让我们的程序更加直观易懂、简洁优雅。
当然你也可以自己借助 json-server 或 最新开源的Parse 搭建一个REST API,不过都需要安装Node.js,有兴趣的可以去试试。 接口列表: ?...当然本篇文章会介绍得详细一点,不能写一篇水文,毕竟我给它命名为《你真的会用Retrofit2吗?Retrofit2完全教程》。...1.3、接口调用 Call call = service.getFirstBlog(2); // 用法和OkHttp的call如出一辙, // 不同的是如果是Android系统回调方法执行在主线程...第一类:HTTP请求方法 ?...测试1', content='这里是 Retrofit2 Demo 测试服务器1'},.....], count=20, page=1} 「20160608补充」:像上面的这种情况最后我们无法获取到返回的
在移动端App开发中,集成Android语音通知接口是实现语音消息触达用户的核心需求,但多数开发者常会陷入参数校验失败、请求方式适配错误、错误码排查低效等问题,导致接口接入周期从数天缩短至数小时的目标难以实现...、动态密码生成时时间戳格式错误,直接返回400/405错误;错误码排查低效:开发者对4072(模板格式不匹配)、4052(IP备案不符)等错误码对应的问题场景不熟悉,调试效率低;跨版本适配问题:Android6.0...1.2高效接入的核心原则要解决上述问题,接入Android语音通知接口需遵循三个核心原则:先吃透接口规范,明确请求方式、参数格式、字符编码等基础要求;封装通用请求工具类,统一处理参数校验、签名生成与错误码解析...2.2关键参数的核心规则以行业常用的语音通知服务为例,Android语音通知接口,其核心参数需重点关注以下规则:account/password:即APIID与APIKEY,需从服务商控制台获取,缺失返回...401(帐号不能为空),错误返回405(用户名或密码不正确);mobile:仅支持11位手机号(1398888)或{区号}{号码}格式固话,格式错误返回406;content/templateid:使用模板变量方式时
2.3.4 Web API -- MVC终结点 MVC与MVVM 模型绑定 自定义模型绑定器 模型验证 返回数据处理 MVC与MVVM MVC ASP.NET Core MVC 概述:https://docs.microsoft.com...返回数据类型 格式化响应数据 返回数据类型 ASP.NET Core Web API 中控制器操作的返回类型:https://docs.microsoft.com/zh-cn/aspnet/core/...web-api/action-return-types?...:常见返回类型为 BadRequestResult (400)、NotFoundResult (404) 和 OkObjectResult (200) [HttpPost] [Route("option...Core Web API 中响应数据的格式:https://docs.microsoft.com/zh-cn/aspnet/core/web-api/advanced/formatting?