这里关于android如何集成retrofit2.0就详细介绍了,相信网络上也有很多的例子。
首先retrofit关于请求体如何加入的话,这里使用注解就能解决大部分问题,而retrofit官网也给出了很多很好用的注解,只要在interface中声明就行。
主要使用分为以下例子:
①添加retrofit库依赖
②创建接受请求数据bean类
③创建用于请求的接口
④创建retrofit实例
⑤创建网络请求接口实例以及配置网络请求参数
⑥发送网络请求
⑦处理返回数据
主要从第四步讲起:
常规的retrofit实例创建是新建一个Builder()
比如:
Retrofit retrofit =new Retrofit.Builder()
.baseUrl(“www.XXXXXX”)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
这是常规创建实例,而我们知道,retrofit是基于okhttp的网络请求框架,所以我们封装的时候,可以写一个公有类,以下这是我的做法。
public class RetrofitHelper {
/** 连接超时:10秒 */
public static final int TIME_OUT_CONNECT = 10 * 1000;
/** 读数据超时:10秒 */
public static final int TIME_OUT_READ = 10 * 1000;
/** 转换日志输出格式 */
private static HttpLoggingInterceptor.Logger mLogger = new MyHttpLogger();
private static OkHttpClient mOkHttpClient;
//cookie存储
public static ConcurrentHashMap<String, List<Cookie>> cookieStore;
/**
* 获取带有json转换器的Retrofit对象,如果不需要json转换器请使用
* buildRetrofit(String baseUrl, boolean isNeedGsonConverter)方法获取
*
*/
public static Retrofit buildRetrofit(String baseUrl) {
return buildRetrofit(baseUrl, true);
}
/**
* 构建统一封装的Retrofit对象
*
* @param baseUrl
* @param isNeedGsonConverter 是否需要gson转换器
* @return Retrofit对象
*/
public static Retrofit buildRetrofit(String baseUrl, boolean isNeedGsonConverter) {
Retrofit.B