近几天尝试使用Retrofit和OkHttp构建网络层,从官网配置了依赖链接后,惊奇的发现OkHttp3,Retrofit2,都与以前的版本不兼容,不仅包名不一样(OkHttp3.*,以前的版本是com.squareup.okhttp.*)而且很多方法也被删掉了,目前只有Retrofit2在网上有少许资料,OkHttp3只能参考官方文档了。
在构建网络层时会遇到一个问题就是要手动配置Http请求的Headers,写入缓存Cookie,自定义的User-Agent等参数,但是对于有几十个接口的网络层,我才不想用注解配置Headers,目前网上很多文章的方法真对这两个版本都不是很适用,有的给出的方法已经被删除,有的方法会报出异常 :(
在翻阅官方API文档整理后的方法如下:
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import retrofit2.Retrofit;
public class RetrofitAPIManager {
public static final String SERVER_URL = "url";
public static ClientAPI provideClientApi() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(SERVER_URL)
.client(genericClient())
.build();
return retro