Retrofit学习总结
来源:互联网 发布:手机淘宝内部优惠券 编辑:程序博客网 时间:2024/06/05 20:41
Retrofit2.0学习总结
学习背景:
今天和一个后台的同事聊天,说你们现在后台开发什么框架最流行,同事说.当然是REST了,和app对接开发
REST既方便又快捷.正好我要和他对接支付方面,所以干脆紧跟时代的潮流,学习一下这个github现在最高的
框架.
什么是REST?(此段是百度粘贴的,感谢度娘.)
REST(REpresentational State Transfer)是一组架构约束条件和原则。
RESTful架构都满足以下规则:
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。
关于更多REST知识点
运行结果为:
OKHTTP简易封装.
client = new OkHttpClient.Builder() .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))//注册一个本地应用拦截器,这里有好几个状态. BASIC / HEADERS / BODY 公共参数,头信息,日志拦截 .retryOnConnectionFailure(true)//是否自动重连 .connectTimeout(15, TimeUnit.SECONDS)//设置连接超时 .readTimeout(10,TimeUnit.SECONDS)//设置读超时 .writeTimeout(10,TimeUnit.SECONDS)//设置写超时 .addNetworkInterceptor(new LoggingInterceptor())//注册一个网络拦截器 .build();//构建okhttp
Retrofit简单封装
gson = new GsonBuilder() //配置你的Gson .setDateFormat("yyyy-MM-dd hh:mm:ss") .create();retrofit = new Retrofit.Builder() .client(OkHttpUtil.getInatance().getOkHttpClient())//设置okhttp .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//提供RxJava支持,如果没有提供响应的支持(RxJava,Call),则会跑出异常。 .addConverterFactory(GsonConverterFactory.create(gson))//因为这里和后台是通过json交互,所以需要创建一个GsonConverterFactory,可以添加多种序列化Factory .baseUrl(BASE_URL) .build();
//这里在初始化的时候就创建了一个RetroFit的对象.我们可以用这个对象来拼接参数进行post和get请求啦
APIInterface 接口public interface APIInterface { /** * 获取节目单 这里一定要注意上面注解中的参数名称和下面path中的参数一定要一模一样.大家还是copy吧.这里坑死我了,一直报正则表达式异常* @param al_id * @param hid * @param uid * @return */ @POST("/program/{al_id}/{hid}/{uid}") Call<ProgramInfo> getProgramInfo(@Path("al_id") String al_id, @Path("hid") String hid, @Path("uid") String uid); /** * 获取升级 * @param channel_id * @param app_id * @param app_version * @param mac * @return */ @GET("/upgrade/{channel_id}/{app_id}/{app_version}/{mac}") Call<Update> getUpdate(@Path("channel_id") String channel_id, @Path("app_id") String app_id, @Path("app_version") String app_version, @Path("mac") String mac);}
使用方式:
RetrofitUtil.getInatance().getProgramInfo("9", "4", "1", new Callback() { @Override public void onResponse(Call call, Response response) { Log.d("lichao","success....." + response.body().toString()); } @Override public void onFailure(Call call, Throwable t) { Log.d("lichao","fail....." +t.getMessage() textView.setText(t.getMessage()); } });这里会直接调用重要知识点:
retrofit:注解
其他注解,@Path、@Header,@Headers、@Url
方法注解,包含@GET、@POST、@PUT、@DELETE、@PATH、@HEAD、@OPTIONS、@HTTP。
标记注解,包含@FormUrlEncoded、@Multipart、@Streaming。
参数注解,包含@Query,@QueryMap、@Body、@Field,@FieldMap、@Part,@PartMap@HTTP:可以替代其他方法的任意一种@Url:使用全路径复写baseUrl,适用于非统一baseUrl的场景。
先写到这里.如果想要了解自定义Converter,请看下一篇文章.
github地址:https://github.com/LoveCandy1314/RetrofitDemo
这次要感谢一下文章支持:
http://blog.csdn.net/wbwjx/article/details/51379506
http://www.jianshu.com/p/2710ed1e6b48
阅读全文
0 0
- Retrofit 学习总结
- Retrofit学习总结
- retrofit 总结
- Retrofit总结
- 学习Retrofit
- retrofit学习
- retrofit学习
- 学习Retrofit
- Retrofit学习
- Retrofit学习
- 学习Retrofit
- 安卓开发--------Rxjava和Retrofit学习总结
- Retrofit + RxAndroid 实践总结
- Retrofit使用场景总结
- Retrofit使用总结
- Retrofit使用总结
- Retrofit使用总结
- RxJava + Retrofit 总结汇总
- JAVA引用和C语言指针的探究
- 关于博客账号迁移
- chmod问题解决0-撤销执行权限
- weekly contest 55 第三题 Subarray Product Less Than K
- Hadoop2.7.3完全分布式集群搭建和测试
- Retrofit学习总结
- JS-Jquery 同步校验两次密码是否相同
- concat连接字符串在字段前后增加字符串
- 共享经济来势汹汹读懂了你将是下一个土豪
- java 用“*”在控制台打印出一个近似圆
- Django中的全局配置
- leetcode
- 稀疏矩阵的快速转置
- 新建文本文档 (4)