Retrofit的Get与Post请求
2016-08-08 16:28
176 查看
1.Retrofit简介
Retrofit无疑是当下最流行的Android网络请求框架了,是Square提供的开源产品。官方网站是这样介绍Retrofit的—-A type-safe HTTP client for Androidand Java,为Android平台的应用提供一个类型安全的HTTP客户端。Retrofit 是一套注解形式的网络请求封装库,它的强大在于让代码结构更加清晰,它可以直接解析JSON数据变成JAVA对象,支持回调操作,处理不同的结果。
2.准备工作
添加依赖:在AndroidStudio的项目中,在build.gradle文件中添加以下引用:
compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'//ConverterFactory的String依赖包 //ScalarsConverterFactory.create()
数据准备:
使用okhttp请求网络数据的时候,我们需要把服务器返回的JSON数据手动转换成我们的Java对象。而在上文我们提到,Retrofit可以直接解析JSON数据变成JAVA对象,这也是Retrofit灵活与强大的体现。看看怎么实现的
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
首先添加以上引用,这里除了gson以外,还有其他的选择。Retrofit自动转化的核心就是根据服务器返回的json数据定制一个javabean,举个例子:
服务器返回的很常见的一种数据类型,jsonobject对象里面包括一个jsonarray数组,数组里面包括很多jsonobject对象。我们需要拿到的就是这些jsonobject里的id与name的。看看定制的javabean该怎么写:
3.基本使用
1.get请求请求城市数据的url为:http://111.111.1.11/Base/getCities?clientVersion=205002&version=1622
请求方式为get,请求参数为clientVersion与version,请求数据为城市的id与name,那么使用Retrofit完成数据请求的流程如下:
2.post请求
同样是上面的url,如果改为post请求,要求提交的参数有两个,userId:1001,userName:kaikai,那我们应该怎样实现呢:
4.常用配置
1.设置打印拦截器compile 'com.squareup.okhttp3:logging-interceptor:3.4.0-RC1'
首先添加依赖,进行log的打印
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY);
HttpLoggingInterceptor 是一个拦截器,用于输出网络请求和结果的 Log,可以配置 level 为 BASIC / HEADERS / BODY,查看源码它们级别依次是:
2.设置连接与读取超时
5.简单封装
Retrofit的灵活与强大远不止这些,比如访问动态url,设置网络缓存,管理cookie,自定义转换器等,以后项目中有用到的地方再更新博客。我也是最近才从okHttp转战Retrofit的,博客有不当的地方欢迎指正。
相关文章推荐
- Retrofit2.0的get请求和post请求(入门级)
- [置顶] 策略模式实现 retrofit 的get和post请求的公共参数(一)
- retrofit的 get post 请求 + log日志
- Retrofit 动态参数(非固定参数、非必须参数)(Get、Post请求)
- 快捷使用Retrofit网络请求框架(get请求,post请求,上传文件)
- Okhttp和Retrofit的get,post请求
- Retrofit2的get请求和post请求
- [Android] Retrofit2.0 GET和POST方式请求
- 详解Retrofit 动态参数(非固定参数、非必须参数)(Get、Post请求)
- 使用Retrofit结合RxJava实现Get与Post网络请求
- Retrofit简单封装使用--Post请求封装请求体、Get请求通过参数、map方式构建url
- Retrofit 动态参数(Get、Post请求)
- 利用Retrofit执行Post、Get请求,通俗易懂
- 两行代码搞定发送 Retrofit GET/POST 请求
- 利用Retrofit执行Post、Get请求,通俗易懂
- Retrofit网络请求封装公共参数GET和POST请求
- Retrofit的基本post,get请求
- Retrofit2.0的get post请求简单数据
- 初学者---Android (简单总结)Retrofit请求方式之get,post
- [置顶] 策略模式(注解版)实现 retrofit 的get和post请求的公共参数(二)