介绍 Retrofit是Square公司基于RESTful风格推出的网络框架封装。Retrofit是基于OKHttp的网络请求框架的二次封装,其本质仍是OKHttp。...基于HTTPClient,作者已经停止维护,Android5.0不再使用HTTPClient,因此不推荐使用。 Volley。...//调用接口方法 Call zhangsan = userMgrService.login("张三", "123456"); 发送请求(同步、异步)。...同步:调用Call对象的execute(),返回结果的响应体。 异步:调用Call对象的enqueue(),参数是一个回调。...总结 Retrofit是基于OKHttp网络库的高级封装,采用注解、网络请求参数配置更灵活,扩展性更好,RESTful风格的API优先选用Retrofit。
本文链接 前言 在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求。对于OkHttp来说,具体是调用Call的cancel方法。...OkHttp中的tag 要取消一个请求,OkHttp中可以使用cancel方法,参考。 OkHttp的request对象有tag。可以根据tag来标示请求。参考Stack Overflow。...中并没有显示地提供取消请求的接口。...2018年时Retrofit仍未提供直接访问call对象的方法 那么如何找到目标网络请求呢?...OkHttp + Retrofit 使用示例 Android OkHttp + Retrofit 取消请求的方法 Android OkHttp + Retrofit 下载文件与进度监听 Android
在这片文章之前分别单独介绍过Rxjava以及Retrofit的使用: Android Retrofit 2.0 的使用 Android RxJava的使用(一)基本用法 (以及后面的几篇,就不一一列出了...先看看使用Retrofit完成一次网络请求是怎样的 单独使用Retrofit 1、先写一个service interface MyService { @GET("user/login" )...那Retrofit与RxJava结合是怎样使用的?下面就来说说这篇文章的重点。 RxJava + Retrofit完成网络请求 1、添加依赖。...} }); RxJava + Retrofit 形式的时候,Retrofit 把请求封装进 Observable ,在请求结束后调用...RxJava的使用就暂时介绍到这里吧,使用过程中遇到好用的再出来跟大家分享。 以上有错误之处感谢指出 参考:给 Android 开发者的 RxJava 详解 (本文部分内容引用自该博客)
网络访问框架经过了从使用最原始的AsyncTask构建简单的网络访问框架(甚至不能称为框架),后来使用开源的android-async-http库,再到使用google发布的volley库,一直不懈的寻找更好的解决方案...,到现在也没找到,不过据行业所说,Retrofit算是行业比较牛逼的开源请求框架了吧,也算找 到了一些更好的方案,在这里做些记录,也做共享。...Retrofit:Square提供的开源产品,为Android平台的应用提供一个类型安全的REST客户端 https://github.com/square/retrofit RxAndroid...:响应式编程框架RxJava针对Android平台的扩展。...https://github.com/google/dagger/ 为了书写 方便,便于实践,我们用下面的地址作为服务器请求地址:http://ip.taobao.com/service/getIpInfo.php
get方式中又可以分为两种情况,分别是同步请求和异步请求;同步请求在进行请求的时候,当前线程会阻塞住,直到得到服务器的响应后,后面的代码才会执行;而异步请求不会阻塞当前线程,它采用了回调的方式,请求是在另一个线程中执行的...方式:POST请求将参数放在请求的主体中,不会直接显示在URL中。...的介绍和基本使用 Retrofit是一个基于OkHttp的强大且易于使用的网络请求库,用于在Android和Java应用程序中进行网络通信。...Retrofit的基本用法如下: 1.添加依赖项:在您的Android或Java项目中的build.gradle文件中添加Retrofit的依赖项 implementation 'com.squareup.retrofit2...:retrofit:2.9.0' 2.创建API接口:定义一个包含请求方法的接口,该接口描述了请求的类型、URL路径、请求参数和响应类型。
具体实现 下面,我将结合 `Retrofit` 与`RxJava` 实现 有条件的轮询需求 3.1 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求...的接口(区别于Retrofit传统形式) 创建 Retrofit 实例 创建 网络请求接口实例 并 配置网络请求参数(区别于Retrofit传统形式) 发送网络请求(区别于Retrofit传统形式)...发送网络请求 对返回的数据进行处理 本实例侧重于说明 RxJava 的轮询需求,关于Retrofit的使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 3.2 步骤实现...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...Demo地址 Carson_Ho的Github地址 = RxJava2实战系列:有条件的轮询 关于无条件的网络请求轮询,具体请看文章Android RxJava 实际应用讲解:网络请求轮询 ---
对Retrofit已经使用了一点时间了,是时候归纳一下各种网络请求的service了。...下面分为GET、POST、DELETE还有PUT的请求,说明@Path、@Query、@QueryMap、@Body、@Field的用法。...初始化Retrofit String BASE_URL = "http://102.10.10.132/api/"; Retrofit retrofit = new Retrofit.Builder()...,与Post中的Body相同 PUT(这个请求很少用到,例子就写一个) http://102.10.10.132/api/Accounts/1 http://102.10.10.132/api/Accounts...access_token={access_token} @QueryMap:相当于多个@Query @Field:用于POST请求,提交单个数据 @Body:相当于多个@Field,以对象的形式提交
简介: Retrofit: Retrofit是Square 公司开发的一款正对Android 网络请求的框架。底层基于OkHttp 实现,OkHttp 已经得到了google 官方的认可。...各自的职责:Retrofit 负责请求的数据和请求的结果,使用接口的方式呈现,OkHttp 负责请求的过程,RxJava 负责异步,各种线程之间的切换。...RxJava + Retrofit + okHttp 已成为当前Android 网络请求最流行的方式。...常用的注解: @GET GET请求方式 @POST POST请求方式 @Query GET请求参数 @Header用来添加Header请求头 @FormUrlEncoded post请求头标示...:"Retrofit"即可获取 --- 小编整理了一份Android电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦!
前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜欢...与其他网络请求开源库对比 除了Retrofit,如今Android中主流的网络请求框架有: Android-Async-Http Volley OkHttp 下面是简单介绍: 一图让你了解全部的网络请求库和他们之间的区别...附:各个主流网络请求库的Github地址 Android-Async-Http Volley OkHttp Retrofit 3....的使用步骤: 创建Retrofit实例 创建 网络请求接口实例 并 配置网络请求参数 发送网络请求 封装了 数据转换、线程切换的操作 处理服务器返回的数据 4.2.1 创建Retrofit实例 a....// 主要是解析获取Http请求的方法 // 注解包括:DELETE、GET、POST、HEAD、PATCH、PUT、OPTIONS、HTTP、retrofit2.http.Headers
Android下通过HttpClient执行 HTTP POST 请求 public void postData() { // Create a new HttpClient and Post...; httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request
retrofit-helper Retrofit是很多android开发者都在使用的Http请求库!...他负责网络请求接口的封装,底层实现是OkHttp,它的一个特点是包含了特别多注解,方便简化你的代码量,CallAdapter.Factory 和Converter.Factory可以很灵活的扩展你的请求...我们在使用的时候还是需要封装一层便于我们使用,retrofit-helper的作用就是再次简化你的请求。 1. Retrofit-helper扩展了那些功能 ? 2....,取消请求 全局保存所有的请求,添加 、删除请求,取消某个某些匹配tag的请求。...; //可以添加多个,如: RetrofitFactory.OTHERS.put("other",otherRetrofit); 3.2 添加请求服务接口 下面为登录的 post请求 @FormUrlEncoded
null;//网络请求对应的输出流,就是客户端把参数给服务器 叫输出, BufferedReader in = null; String result = ""; try { URL realUrl...= new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty...(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader...url ,然后调用这个方法就行了 第二种:post使用已经被Android弃用的BasicNameValuePair来进行生成 public String doPost(String url, ArrayList..., String result = "";//向服务器请求之后返回的数据结果 HttpClient httpClient = new DefaultHttpClient();//申明一个网络访问客户端
想象一下,你打开一个网页,浏览器就会发送一个HTTP请求给服务器,服务器收到请求后,就会把网页的数据通过HTTP响应发回来。这个过程就像是你给朋友发了一封信,朋友收到后回复你一样。...HTTP请求和响应都有固定的格式,比如请求方法(GET、POST、PUT、DELETE等),这些方法就像是你给朋友信里的不同指令。...二、常用的网络库 有了基础知识,咱们再来看看实际开发中常用的网络库。这里主要介绍Retrofit和OkHttp,它们是Android网络编程的两大明星。...请求队列:管理请求队列,合理安排请求的优先级。 超时设置:设置合理的超时时间,避免请求卡住。 四、网络相关的面试题及详细解答 面试中,网络编程的问题五花八门,但万变不离其宗。...如何处理网络请求的超时? 超时设置就像是给邮递员设定一个时间限制,超过时间就返回。在Retrofit和OkHttp中,可以通过设置超时时间来避免请求卡住。
前言 Retrofit是现在比较流行的网络请求框架,可以理解为okhttp的加强版,底层封装了Okhttp。 准确来说,Retrofit是一个RESTful的http网络请求框架的封装。...因为网络请求工作本质上是由okhttp来完成,而Retrofit负责网络请求接口的封装。...https://square.github.io/retrofit/ 基本配置 添加网络权限 android:name="android.permission.INTERNET...请求方法注解 请求方法注解 说明 @GET get请求 @POST post请求 @PUT put请求 @DELETE delete请求 @PATCH patch请求,该请求是对put请求的补充,用于更新局部资源...转化为json字符串进行传递 @Filed 多用于Post方式传递参数,需要结合@FromUrlEncoded使用,即以表单的形式传递参数 @FiledMap 多用于Post请求中的表单字段,需要结合@
① get 请求用来从服务器上获取资源;而 post 请求通常是用来向服务器提交数据的; ② get 请求是将表单中的数据按 name=value 的形式,添加到 action 所指向的 URL 后面,...的方式连接,而各个变量之间使用 "&" 连接;post 是将表单中的数据放在 HTTP 协议的请求头或消息体中,传递到 action 所指向 URL; ③ get 传输的数据受到 URL 长度的限制(因浏览器不同最大字符长度也有所不同...),而 post 请求则没有这方面的约束; ④ 使用 get 发送请求时,参数会显示在地址栏上,如果这些数据不是敏感数据,那么允许使用 get,但对于敏感数据,还是建议使用 post; ⑤ get 使用...MIME 类型为 application/x-www-form-urlencoded 的 URL 编码(也叫百分号编码)文本格式进行传递参数,保证被传送的参数遵循规范的文本组成,例如:一个空格的编码是
具体实现 下面,我将结合 Retrofit 与RxJava 实现 网络请求出错重连 功能 3.1 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于Retrofit...传统形式) 创建 Retrofit 实例 创建 网络请求接口实例 并 配置网络请求参数(区别于Retrofit传统形式) 发送网络请求(区别于Retrofit传统形式) 发送网络请求 对返回的数据进行处理...在 Gradle加入Retrofit库的依赖 build.gradle dependencies { // Android 支持 Rxjava // 此处一定要注意使用RxJava2的版本 compile...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建 接收服务器返回数据...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的
它们的主要区别如下: 1.应用场景的区别: GET请求是一个幂等的请求,一般用来请求获取数据,比如查询,对服务器资源不会产生影响; POST请求不是一个幂等的请求,一般用来提交数据到后台,比如创建或者更新表单...,会对服务器资源产生影响; 幂等是指同样的请求被执行一次或者多次,最终得到的结果都是相同的。...通常HTTP请求只适用于不改变服务端数据的请求,比如查询类的请求,因为GET通常是用于获取数据,一般不做更新服务器数据的操作,所以符合HTTP缓存适用于不改变服务器数据的请求的原则,所以说GET请求可以被缓存...5.参数类型的区别: GET请求只接受ASCII字符; POST请求没有限制,支持更多的数据类型; 6.其他区别 GET请求刷新浏览器或者回退没有影响;POST请求则会重新请求一遍;...,浏览器会把 header 和 data 一起发送出去,服务器响应200(返回数据) 2、POST请求时,浏览器首先发送headers,服务器响应100 continue,浏览器再发送data,服务器响应
前言:在Android开发的过程中,必须会接触到数据交互(访问数据,写入数据等你等),既然接触到数据的交互,那么自然而然就是使用通讯间的协议来进行请求,最常见的协议就是Http协议,Http协议包括两个具体的请求方式...---- Http请求方式Get与Post的简介 先来了解Http协议:Http(HyperText Transfer Protocol超文本传输协议)是一个设计来使客户端和服务器顺利进行通讯的协议。...HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作。 简单来说呢,Get与Post就是基于http协议的网络数据交互方式。...---- Get与Post的主要区别 在Android开发的过程中,该如何选择Http的Get还是Post来进行通讯呢?那就详细探索他们之间的差异。...---- Android如何使用Get与Post协议 不多说,上代码展示(演示用户登录访问服务器) public class LoginServer { /** *get
对于 RxJava 不是很了解的同学推荐你们看扔物线大神的这篇文章给 Android 开发者的 RxJava 详解一遍看不懂就看第二遍。...private static ApiService SERVICE; /** * 请求超时时间 */ private static final int DEFAULT_TIMEOUT = 10000...,手动创建了OkHttpClient设置了请求的超时时间。...封装服务器请求以及返回数据 用户在使用任何一个网络框架都只关系请求的返回和错误信息,所以对请求的返回和请求要做一个细致的封装。...RetrofitCache.load(cacheKey,observable,isSave,forceRefresh).subscribe(subscriber); } Activity生命周期管理 基本的网络请求都是向服务器请求数据
Retrofit的出现让Android的网络请求变得异常简单,同时可以很好的配合后台的REST接口。非常值得我们去探究一下它的原理。...下面是一个普通get请求 1.新建接口 新建接口API.java文件: public interface API { @GET("请求地址,但是不包括服务器的地址") CallRetrofit中,内置了两种平台,一种是Android,一种是Java8。不同的平台,处理的方式不同。...,其实是一个OkHttpClient,也就是说Retrofit的内部请求原理其实是用的OkHttp。...总结 Retrofit在创建的过程中,有这么一些东西需要我们注意 platform 这个是Retrofit支持的平台,里面有Android和Java8,这里自然是Android callFactory
领取专属 10元无门槛券
手把手带您无忧上云