天天看點

android nohttp的封裝,NoHttpUtil: 根據nohttp架構2次封裝,使用更加友善,同時借鑒了okhttpUtils的鍊式樣式...

------------------------------------------------------版本1.2--------------------------------------------------------

mvp中的rxjava請求,實作隊列請求

------------------------------------------------------版本1.1--------------------------------------------------------

1.請求優化,去除多餘的類

2.mvp優化 修改的插件(謝謝MVPHelper作者) 在assets裡 MVPHelper_contract.jar

(最近自己開發項目越來越大,接口越來越多,發現model Impl 類太多,找起來也麻煩,是以把M層和V層放在了Contract包中,一個類搞定,p層還是單獨放,自動生成,并且初始化)

如果不使用mvp 不推薦用IRequestRx 直接請求,會失去noHttp的特性,例如請隊列等

String mUrl = "http://image.baidu.com/channel/listjson?pn=" + 1

+ "&rn=" + 22

+ "&tag1=%E6%98%8E%E6%98%9F&tag2=%E5%85%A8%E9%83%A8";

IRequest.get(this, mUrl)

.execute(new RequestListener() {

@Override

public void onSuccess(Response result) {

}

});

IRequest.get(this, mUrl)

.params("", "")

.loading(true)

.execute(new RequestListener() {

@Override

public void onSuccess(Response result) {

}

@Override

public void onFailed(int what, Response result) {

super.onFailed(what, result);

}

});

------------------------------------------------------版本1.0--------------------------------------------------------

一直想嘗試用mvp-rxjava-nohttp

看了不少别人寫的mvp的demo,例如T-mvp等 各有各的好,找到适合自己的就行

還好有個大牛出了MVPHelper插件,不然打死我也不會用mvp,因為寫的類太多。為了避免model類重名,我就把MVPHelper裡面小改了下,把LoginModel 改成ILoginModel,不喜歡可以忽略

看了Author: Othershe寫的mvp 就抽走了幾個mvp類

我寫mvp流程如果下:(僅參考)

1.寫view層的回調

2.在寫model rx回調

3.在寫 實作model層 (業務寫在這裡)

4.然後再寫p層

Map params = new HashMap<>();

IRequest.post(this, mUrl, params)

.loading(true)

.execute(PuBuLiuModel.class, new RequestArrayListener() {

@Override

public void onSuccess(Response result) {

Toast.makeText(MainActivity.this, JsonUtils.string(result.get()), Toast.LENGTH_SHORT).show();

}

@Override

public void onFailed(int what, Response result) {

super.onFailed(what, result);

}

});

IRequest.get(this, mUrl)

.loading(true)

.loadingTitle("努力中...")

.execute(new RequestListener() {

@Override

public void onSuccess(Response result) {

Toast.makeText(MainActivity.this, "擷取成功", Toast.LENGTH_SHORT).show();

}

});

IRequestRx.get(this,mUrl)

.execute(new Subscriber() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

}

@Override

public void onNext(String s) {

}

});

IRequestRx.get(this,mUrl)

.execute(PuBuLiuModel.class, new Subscriber() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

}

@Override

public void onNext(PuBuLiuModel puBuLiuModel) {

}

});