Android OkHttp+Retrofit+Rxjava+Hilt实现网络请求框架(1)

.writeTimeout(TIME_OUT, TimeUnit.SECONDS)

.build();

}

}

}

return okHttpClient;

}

public Retrofit initRetrofit() {

if (retrofit == null) {

synchronized (NetworkManager.class) {

if (retrofit == null) {

//注释2:创建Retrofit

retrofit = new Retrofit.Builder()

.client(initClient())//选填

.baseUrl(IWanAndroidService.BASE_URL)//必填

.addConverterFactory(GsonConverterFactory.create())//选填(数据转换器,解析)

.build();

}

}

}

return retrofit;

}

}

  • 注释1:创建OkHttpClient对象,构建一个网络类型的实例,一般会将所有的网络请求使用同一个单例对象。(如果OkHttpClient使用默认,可不设置)

  • 注释2:创建Retrofit对象,构建一个网络请求的载体对象,在build的时候有非常多的初始化内容,如设置OkHttpClient、设置请求的url,添加数据转换器等。

💥 网络请求


//GET

//注释1:动态获取IWanAndroidService对象

IWanAndroidService service = NetworkManager.getInstance().initRetrofit().create(IWanAndroidService.class);

//注释2:网络请求

service.homeBanner().enqueue(new Callback<ResponseData<List>>() {

@Override

public void onResponse(Call<ResponseData<List>> call, Response<ResponseData<List>> response) {

if (response.body().getData() != null) {

MLog.e(response.body().getData().get(0).toString());

binding.loginTvContent.setText(response.body().getData().get(0).toString());

}

}

@Override

public void onFailure(Call<ResponseData<List>> call, Throwable t) {

MLog.e(t.getMessage());

}

});

//POST

Map<String, String> map = new HashMap<>();

map.put(“username”, account);

map.put(“password”, passsword);

map.put(“repassword”, passsword);

NetworkManager.getInstance().initRetrofit().create(IWanAndroidService.class)

.register(map).enqueue(new Callback<ResponseData>() {

@Override

public void onResponse(Call<ResponseData> call, Response<ResponseData> response) {

if (response.body().getData() != null) {

MLog.e(response.body().getData().toString());

binding.loginTvContent.setText(response.body().getData().toString());

}

}

@Override

public void onFailure(Call<ResponseData> call, Throwable t) {

MLog.e(t.getMessage());

}

});

Retrofit的精髓:为统一配置网络请求完成动态代理的设置。

💥 效果图


🔥 Rxjava

=====&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值