内容简介:目前接口使用同异步的网络请求.enqueue();直接调用 Server.getModuleList()方法就可以在使用过程中可以根据需求调整
- RequestData:网络返回的数据
- Http:retrofit的网络实例化
- RetrofitService:网络的接口注解显示
- Server:网络接口的调用显示
- SSLSocketFactoryUtils:https的处理
1.配置build.gradle
implementation 'com.squareup.retrofit2:retrofit:2.4.0' //okhttp3的日志打印 implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0' //retrofit的gson解析 implementation 'com.squareup.retrofit2:converter-gson:2.4.0' 复制代码
2.新建网络返回数据RequestData
public class RequestData {
private String msg;
private int status;
private ArrayList<Data> data;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public ArrayList<Data> getData() {
return data;
}
public void setData(ArrayList<Data> data) {
this.data = data;
}
@Override
public String toString() {
return "msg = " + msg + "status = " + status;
}
}
复制代码
3.添加https的校验
public class SSLSocketFactoryUtils {
/*
* 默认信任所有的证书
* */
public static SSLSocketFactory createSSLSocketFactory() {
SSLSocketFactory sslSocketFactory = null;
try {
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[]{createTrustAllManager()}, new SecureRandom());
sslSocketFactory = sslContext.getSocketFactory();
} catch (Exception e) {
}
return sslSocketFactory;
}
public static X509TrustManager createTrustAllManager() {
X509TrustManager tm = null;
try {
tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
//do nothing,接受任意客户端证书
}
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
//do nothing,接受任意服务端证书
}
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
};
} catch (Exception e) {
}
return tm;
}
}
复制代码
4.实例化Retrofit
public class Http {
private static Http mInstance;
//单利模式
public static Http getInstance() {
if (mInstance == null) {
synchronized (Http.class) {
if (mInstance == null) {
mInstance = new Http();
}
}
}
return mInstance;
}
public Retrofit getRetrofit(){
HttpLoggingInterceptor loggingInterceptor;
//打印网络请求相关日志
loggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
//打印retrofit日志
Log.i("retrofitLog: ", message);
}
});
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//为了打印日志,需要配置OkHttpClient
OkHttpClient client = new OkHttpClient.Builder()
//配置SSlSocketFactory
.sslSocketFactory(SSLSocketFactoryUtils.createSSLSocketFactory())
.addInterceptor(loggingInterceptor)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Config.DOMAIN) // 设置 网络请求 Url
.client(client)
.addConverterFactory(GsonConverterFactory.create()) //设置使用Gson解析(记得加入依赖)
.build();
return retrofit;
}
public RetrofitService getRetrofitService(){
return getInstance().getRetrofit().create(RetrofitService.class);
}
}
复制代码
5.初始化RetrofitService接口注解
public interface RetrofitService {
@GET("/api/user/modules")
Call<RequestData> getModuleList(@Query("token") String token);
@GET("/api/user/logout")
Call<RequestData> logOutRequest(@Query("token") String token);
}
复制代码
6.外部调用接口
public class Server {
public static void getModuleList(String token,Callback<RequestData> callback){
Http.getInstance().getRetrofitService().getModuleList(token).enqueue(callback);
}
public static void logOutRequest(String token,Callback<RequestData> callback){
Http.getInstance().getRetrofitService().logOutRequest(token).enqueue(callback);
}
}
复制代码
目前接口使用同异步的网络请求.enqueue();
直接调用 Server.getModuleList()方法就可以
在使用过程中可以根据需求调整
以上所述就是小编给大家介绍的《Retrofit的简单封装》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 封装JDBC—非框架开发必备的封装类
- SpringBlade 2.3.2 发布,增加 OSS 封装及单元测试封装
- SpringBlade 2.3.2 发布,增加 OSS 封装及单元测试封装
- docker 封装 alinode
- 封装Apk签名工具
- axios封装笔记
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
xHTML+CSS+Dreamweaver CS3标准网站构建实例详解
李晓斌 / 第1版 (2007年9月1日) / 2007-9 / 49.9
《xHTML+CSS+Dreamweaver CS3标准网站构建实例详解》特别适合网站美工、网站前端架构师、网页设计爱好者、Wap页面设计师作为学习Web标准网页制作的入门图书,也适合Web标准网站高手作为案头随手查询手册,也适合作为美术院校和培训学校相关专业的培训教材。一起来看看 《xHTML+CSS+Dreamweaver CS3标准网站构建实例详解》 这本书的介绍吧!