Skip to content

Repository files navigation

集成配置

1.集成和使用

这是一个离散型的请求模型,使用时通过继承ApiImpl配置一条请求接口

@PostpublicclassPost_ocrIdentityextendsApiImpl {
@OverridepublicStringbaseUrl() {
return"http://auth.context.cn/cjService/service/api/v12/ocrIdentity";
}
@OverridepublicIParamsencryptParams(IParamsparams) {
returnparams;
}
}

也可通过全局配置默认项实现,配置默认项目通过

publicBuildersetNetOptions(Class<? extendsApiInterface> clazz, NetOptionsnetOptions)

实现,默认设置在NetOptions里配置,配置针对的是某一类的ApiImpl,具体应用中可以将项目类目的Api继承XxxApiImpl,再通过

setNetOptions(XxxApiImpl.class, xxxNetOptions)

设置即可。

NetOption包含了ApiImp可配的参数,示例如下:

NetOptionsbaseOptions = newNetOptions().setOkHttpClient(okHttpClient)
//添加默认Header,优先级低于重写ApiImpl的requestBuilderFilter方法
.setRequestBuilderFilter(newRequestBuilderFilter() {
@Overridepublicvoidfilter(Request.Builderbuilder, IParamsiParams) {
builder.addHeader("User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8)");
builder.addHeader("Accept", "*/*");
builder.addHeader("Content-Encoding", "UTF-8");
builder.addHeader("X_platform", "android");
builder.addHeader("Content-Type", "application/x-www-form-urlencoded");
}
})
//设置参数默认过滤,优先级低于重写ApiImpl的encryptParams方法
.setParamFilter(newParamFilter() {
@OverridepublicIParamsencryptParams(IParamsiParams) {
returnParamsBuilder.build(appContext, (Params) iParams);
}
});

传参模型需要实现IParams

publicinterfaceIParams {
/** * 构造POST请求(包括文件) */Request.BuilderbuildPostBody();
/** * 构造Get请求字符串 */StringbuildGetUrl();
}

可参考实现的ParamsImpl

回调函数实现接口 IResponse

publicinterfaceIResponse {
//开始请求voidonRequest(intcallId);
//是否强制在主线程回调booleanforceResponseOnMainThread();
//是否拦截返回,拦截时后面所有函数不调用booleanisIntercept(intcallId);
//数据返回即调用,后于isIntercept,优先于其他所有,返回true表示消费,后续不做处理,false表示不消费booleanonResponse(intcallId, Stringbody);
//返回成功voidonResponseSuccess(intcallId, JSONObjectresponse);
//返回失败或者数据错误voidonResponseFailure(intcallId, intstatusCode, StringerrorMsg);
//回调结束,先于onResponseSuccess和onResponseFailure调用voidonResponseFinish(intcallId);
//回调结束,后于onResponseSuccess和onResponseFailure调用voidonResponseEnd(intcallId);
//将JSONObject转成Result的实现方案ResultjsonToResult(intcallId, JSONObjectjson);
}

About

离散型的请求框架,封装Okhttp

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages