关于retrofit2.0的一些使用的简单总结

近期做一些关于retrofit2.0框架的东西,在此做个简单的总结,不足之处还希望多提意见,毕竟安卓初学者。

retrofit2.0的基本知识不在继续阐述了,主要是写下自己用到的东西,这里主要是在网络请求与应答的方式做了简单的格式封装。

1、首先是定义并初始化retrofit

public static String BASE_URL="http://123.abc.com/";

注意这里定义服务器url,为避免后面请求时接口url对其的覆盖,最好直接在后面带上“/”;

public static Retrofit retrofit = newRetrofit.Builder();

.addConverterFactory(GsonConverterFactory.create())//增加返回值为Gson的支持(以实体类返回)

.baseUrl(BASE_URL)//服务器 url

.client(genericClient())

.build();

2、定义请求与应答的实体类,请求的实体类就是简单的JAVA实体类;应答的实体类可使用DHC接口调试查看出参并使用AS的gsonformat工具生成。

3、定义所有业务的公用接口服务类,为了代码美观以及集成的思想,将所有接口放在一个接口服务类下面

public interface RequestService{

Stringurl1="gao/abc";

/**业务接口1*/

@POST(url1)

Call getPerformance(@BodyTestInData inputData);

/**业务接口2*/

@POST(url1)

Call getPerformance2(@BodyTestInData inputData);

// 仿照此方法继续加入接口。。。

}

4、定义类实现3中的接口方法,并传入入参具体值

public class InterfaceFactory implements RequestService{

/**业务接口1*/

@Override

publicCall getPerformance(@BodyTestInData inputData) {

inputData.setService("aaaa");//接口名称

inputData.setUser_id("198");

returnMainApplication.retrofit.create(RequestService.class).getPerformance(inputData);

}   }

5、请求回调

(1)、以实体类的形式应答

TestInData inputData =newTestInData();

Call call =interfaceFactory.getPerformance(inputData);

call.enqueue(newCallback() {

@Override

public voidonResponse(Call call, Response response) {

if(response.isSuccess()) {

TestOutData.ResultDataBean testOutData = response.body().getResult_data();

//。。。。。

}

(2)、以Object应答在自行解析

TestInData inputData =newTestInData();

Call call  = InterfaceFactory.getPerformance(inputData);

call.enqueue(newCallback() {

@Override

public voidonResponse(Call call, Responseresponse) {

if(response.isSuccess()) {

linkedTreeMap = (LinkedTreeMap) response.body().getResult_data();

Gson gson = new Gson();

String str = gson.toJson(linkedTreeMap);

//。。。。。

}

至此一个简单的关于retrofit的demo写完了,主要是实体类形式出入参方便工程修改,另外一个好处是retrofit使用了java的动态代理。。

你可能感兴趣的:(关于retrofit2.0的一些使用的简单总结)