第三方开源库:retrofit
来源:互联网 发布:网络推广服务费 编辑:程序博客网 时间:2024/05/15 08:39
参考:
android 介绍Retrofit的简单使用
急速开发系列——Retrofit实战技巧
简介
retrofit是一种网络请求框架,内部是通过okHttp实现的
gradle
使用retrofit
需要在module的dependencies
添加依赖:
dependencies { ... compile 'com.squareup.retrofit2:retrofit:2.1.0' ...}
如果需要用retrofit自带的gson来解析数据,那么需要添加下面的解析方式,但是须知道json格式
//使用Gson解析,compile 'com.squareup.retrofit2:converter-gson:2.1.0'
如果自己解析json数据,那么需要添加:
//得到的数据是String类型compile 'com.squareup.retrofit2:converter-scalars:2.1.0'
这里需要值得注意的是导入的retrofit2包的版本必须要一致,否则就会报错。
代码使用步骤
- 创建接口
- 创建Retrofit对象
- 获取创建的接口
- 调用接口里面的方法,获取Call
- 请求网络
简单使用
先看Demo,再解释。
Demo下载地址:RetrofitDemo01
Step1:创建接口
接口里面是app的所有的请求方法,@GET @POST
代表是哪一种请求方式,@Path
+@Query
{占位符}和PATH只用在URL的path部分,url中的参数使用Query和QueryMap 代替,保证接口定义的简洁
public interface AppUrl { //无参 @GET("check2") Call<UpdateBean> get1(); //有参 @POST("ip2addr") Call<IPBean> post1(@Query("ip") String ip, @Query("key") String key); @GET("ip2addr") Call<String> get3(@Query("ip") String ip, @Query("key") String key);}
Step2:创建retrofit对象
addConverterFactory表示使用解析工厂
String url = "http://192.168.1.11:8080/QQ/";//1 创建Retrofit对象Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create()) .build();
Step3:获取创建的接口
获取我们创建的接口
//2 获取网络接口 AppUrlAppUrl appUrl = retrofit.create(AppUrl.class);
Step4:调用接口里面的方法,获取Call
//3 调用AppUrl里面的方法获取callCall<UpdateBean> call = appUrl.get1();
Step5:请求网络
call.enqueue(new Callback<UpdateBean>() { @Override public void onResponse(Call<UpdateBean> call, Response<UpdateBean> response) { //response.body()就是泛型 UpdateBean bean = response.body(); Logger.d("id=" + bean.getId()); } @Override public void onFailure(Call<UpdateBean> call, Throwable t) { Logger.d("message=" + t.getMessage() + "\n toString=" + t.toString()); }});
ConverterFactory解析工厂
可以添加多种解析方式,
Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://106.3.227.33/pulamsi/") //增加返回值为String的支持 .addConverterFactory(ScalarsConverterFactory.create()) //增加返回值为Gson的支持(以实体类返回) .addConverterFactory(GsonConverterFactory.create()) //增加返回值为Oservable<T>的支持 .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build();
请求失败的处理
@Overridepublic void onFailure(Call<String> call, Throwable t) { Logger.d("message=" + t.getMessage() + "\n toString=" + t.toString() + "\n" + "code=" + t.hashCode()); if (t != null && t.getMessage().startsWith("Failed to connect")) { //Unable to resolve host Logger.d("请检查网络是否畅通"); }}
网络请求框架(一):android-async-http
网络请求框架(二):xUtils
网络请求框架(三):Volley
Volley的使用(一):get+post
Volley的使用(二):加载网络图片
Volley的使用(三):Volley与Activity的联动 + Volley的二次封装
网络请求框架(四):OkHttp
网络请求框架(五):Retrofit
0 0
- 第三方开源库:retrofit
- 第三方开源库 Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- Retrofit
- retrofit
- “我的工作,是推动腾讯的边界”
- Codeforces 176E
- 剑指Offer之面试题8:旋转数组中的最小数字
- SQL中的组合查询概述
- C++ 线程同步的四种方式
- 第三方开源库:retrofit
- R语言学习四
- CSS文档流和非文档流下的宽度和高度问题总结
- Jquery—效果(隐藏、显示、切换,滑动,淡入淡出及动画)
- python学习笔记(一) socket
- poi之简单应用
- Python开发专业工具推荐
- signal 11 RenderThread 一个蛋疼的崩溃
- LintCode - 524.左填充