应该指出的是,lib只是为了简化GET和POST在http中的常见条件,在某些特殊的情况下,应该使用http-lib的原始功能。
添加依赖关系
repositories {
jcenter()
}
dependencies {
compile 'com.cysion:Action:1.0.0'
...
}
应首先调用MvcPointer.init(actionListener,debug,httpProxy);
创建一个BaseAction类来扩展MvcAction类,它可以做一些常见的事情,比如标题:
@Override
protected Map<String, String> getHeader() {
Map<String,String> headers = new HashMap<>();
headers.put("test1","one");
headers.put("test2","two");
return headers;
}
创建一个与json相关的javabean;
创建一个动作扩展BaseAction;
@Override
protected String getUrl() {
return Urls.BASE+Urls.FIND_COL;
}
@Override
protected int getHttpMethod() {
return Method_GET;
}
@Override
protected boolean getTargetDataFromJson(String aResult, long aTaskId) {
if(valid(){
listener.onSuccess(*targetResult*,aTaskId);
return true;
}
return false;
}
注意:getTargetDataFromJson()中的操作应该与上述相同;
new GetAction(listener).params(map).taskId(100).execute(DataState.CACHE_FIRST);
private TActionListener mActionListener = new TActionListener() {
@Override
public void onSuccess(Object obj, long taskId) {
switch ((int)taskId) {
case Action.NORMAL:
//cache has done in action
break;
case Action.LOAD_MOER:
//do some work
break;
case Action.REFRESH:
//do some work
break;
}
}
在一个Sub Action类中通过覆盖定义一个请求的缓存过期:
@Override
protected int getKeepTime() {
return 10;//TimeUnits:s
}
通过覆盖在子Action类中定义一个特殊的头部:
protected Map<String, String> getHeader() {
if (mHeader == null) {
mHeader = new HashMap<>();
}
return mHeader;
}
在子动作中覆盖下面的方法来设置特殊的http-impl:
protected HttpProxy getHttpProxy() {
return MvcPointer.getHttpProxy();
}
}
去做...
热门源码