一、 引入项目
compile ‘com.liwy.easyhttp:easyhttp:1.0.7’
二、 初始化
在Application里初始化,主要初始化内容为统一解析回调和IHttpService实现类传入,具体如下:
// 实例化请求实现类
OkHttpClient okHttpClient = new OkHttpClient.Builder().connectTimeout(20, TimeUnit.SECONDS).build();
RequestService requestService = new RequestService(okHttpClient);
// 设置EasyHttp的功能实现类为okHttpService,post提交方式为form表单,数据解析方式为GSON
EasyHttp.getInstance().initHttpService(requestService, Constants.MEDIA_TYPE_FORM,DataParser.PARSE_GSON);
如需自定义数据解析方式,需实现数据解析类的接口,并加入解析回调集合:
// 默认已实现两种解析方式GSON和xml
// 也可以自定义解析方式,比如解析html类型的数据
DataParser.addCallback("html", new Callback() {
@Override
public void onSuccess(String result,SuccessCallback successCallback) {
// do parsing which you want to
}
@Override
public void onError(String error, ErrorCallback errorCallback) {
// http error
}
});
三、 使用
目前共提供四种方法,如下:
1. get(EasyRequest req)
2. post(EasyRequest req)
3. download(EasyRequest req)
4. upload(EasyRequest req)
调用:EasyHttp.getInstance().post(req);
1、 get请求
Map<String, Object> params = new HashMap<>();
params.put("identity", "40283c825d2bca81015d2bcabe850000");
params.put("jsonKey", "test");
EasyRequest easyRequest = EasyHttp.getBuilder()
.setUrl("http://192.168.131.19:8080/cnliwy/appdata/getTestData")
.setParams(params)
.setTag("testTag")
.setSync(true) //设置本次请求为同步,默认为异步请求.
.setSuccessCallback(new SuccessCallback<String>() {
@Override
public void success(String result) {
System.out.println(result);
tvContent.setText(result);
}
})
.build();
EasyHttp.getInstance().get(easyRequest);
参数也可不通过map直接传入,如下
EasyRequest easyRequest = EasyHttp.getBuilder()
.setUrl("http://192.168.131.19:8080/cnliwy/appdata/getT