Retrofit 请求
来源:互联网 发布:河北盘古网络怎么样 编辑:程序博客网 时间:2024/05/18 03:01
认知:
Retrofit 是square开发的一个Android与Java的REST 的一个网络请求库; 相对于其他网络库来说他很容易让程序员理解,接纳 其次是有很多灵活的特性; retrofit可以与RxJava 结合一起使用 换可以加载Fresco图片; 他可以请求: @GET @POST @DELETE @PUT @HTTP @HEAD @OPTIONS @PATH 目前一共八网络请求的方法。
他的本质就是基于Okhttp 的一个封装;
Retrofit 的内部流程:
App 首先通过 Retrofit 去请求网络 其实就是利用 Retrofit 接口层封装的请求参数 和请求头 url 参数什么的 然后就交给人家Okhttp 去操作了 ,然后ok请求好了再给Retrofit 根据用户的需求去解析到数据;
常用的 网络请求框架
http Loppj
volley 谷歌
okhttp square
Retrofit square
使用:
1. 导入依赖:
compile 'com.squareup.retrofit2:retrofit:2.0.2' // Retrofit库 compile 'com.squareup.okhttp3:okhttp:3.1.2' // Okhttp库 compile 'com.squareup.retrofit2:converter-gson:2.0.2' //这个在做Gson 解析数据 是个Gson 解析的工厂 如果结合ReJava 使用 添加: compile 'io.reactivex:rxjava:1.0.14' compile 'io.reactivex:rxandroid:1.0.1'
2首先讲讲 Retrofit 及格基本用到的 注解
@GET 相当于我们平常使用的 使用的get post请求方式 只不过Retrofit 使用注解的形式更方便了 很多的安卓程序员
@GET("mobile/capture") Call<ResponseBody> getCapture(@Query("phone") String phone); @POST 这个表明也就是一个Post 处理 @Header 作为方法的参数传入,用于添加不固定值的Header,该注解会更新 已有的请求头 @Header("Cache-Control:public,max-age=120") @GET("mobile/capture") Call<ResponseBody> getCapture(@Query("phone") String phone);//使用@Headers添加多个请求头@Headers({"User-Agent:android""Cache-Control:public,max-age=120",})
@GET(“mobile/active”)
Call getActive(@Query(“id”) int activeId);
最容易混淆的是put,post,patch这三者,简单的说,post表示新增,put可以理解为完整替换,而patch则是更新资源。
3.结合RxJava 的使用
导入该导入的依赖
创建 一个接口 比如是Get 请求的话 如下:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(url) //设置url
.addConverterFactory(GsonConverterFactory.create()) //添加或开启一个Gson的工厂
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())//添加Rxjava 工厂的使用
.build(); //
IutilsGet get = retrofit.create(IutilsGet.class); //这个是 通过retrofit.create() 传入你 接口 返回那个接口的对象;
Observable observable = get.Get(page); //因为是Rxjava 所以 利用他的被观察者 来接受从 接口里面调到数据;
observable.subscribeOn(Schedulers.io()) // 设置他的io异常
.observeOn(AndroidSchedulers.mainThread()) //弄到主线程去操作
.subscribe(new Observer() { //Rxjava 的订阅者 来拿到数据
@Override
public void onCompleted() {
//
}
@Override public void onError(Throwable e) { // } @Override public void onNext(Myer myDatas) { inter.Success(myDatas); //拿到你所要的数据 } }); 结束 ok 这就是一个更简单的一个用Retrofit 与 Rxjava 的Get请求的结合使用; 有续集哦!!
- retrofit请求
- Retrofit 请求
- Retrofit 网络请求
- Retrofit网络请求
- 使用Retrofit请求API
- retrofit post请求
- Retrofit请求字符串
- Rxjava+Retrofit 请求数据
- Retrofit Https请求
- Retrofit网络请求入门
- 初试Retrofit网络请求
- 使用Retrofit Https请求
- Retrofit网络请求使用
- Retrofit设置请求超时
- retrofit网络请求框架
- Retrofit 网络请求
- 网络请求框架:Retrofit
- Retrofit -网络请求
- Linux 图形切换命令行及运行级别
- MT290\291\292\295\296\298\299
- shouji
- 动态代理
- centos6.5安装hadoop集群过程及遇到的问题
- Retrofit 请求
- 不通的路径Ⅱ
- 三色旗(c/python)
- 手写轮播
- 读取进度加载二维码
- RxJava+Retrofit 简单理解实现
- Java super隐式参数
- 动态规划DP_最长上升子序列LIS
- Linux如何安装JAVA的JDK?