Retrofit+Okhttp 데이터 및 콜백 패키징
서버의 일괄 콜백 인터페이스는 다음 형식입니다.
{
"code:":"",
"msg:"",
"content":
{
....
}
}
우선 저희가 필요한 데이터를 확인해야 돼요.
GsonConverterFactory
와 ScalarsConverterFactory
변환기를 통해 우리가 필요로 하는 대상 데이터로 봉인할 수 있습니다.public class BaseModel implements Serializable {
private String msg;
private String code;
private T content;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public T getContent() {
return content;
}
public void setContent(T content) {
this.content = content;
}
/**
*
*
* @return boolean
*/
public boolean isSuccess() {
return code.equals("0");
}
/**
*
*
* @return boolean
*/
public boolean isOverDue() {
return code.equals("6");
}
}
사용자 정의 콜백
public abstract class BaseAction implements Action1> {
@Override
public void call(BaseModel tBaseModel) {
if (tBaseModel.isSuccess()) {//
onSuc(tBaseModel.getMsg(), tBaseModel.getContent());
} else if (tBaseModel.isOverDue()) {//
EventBus.getDefault().post(EventBusEvent.TOKEN_EVENT);
} else {//
onFail(tBaseModel.getMsg());
}
}
protected abstract void onSuc(String msg, T content);
protected abstract void onFail(String msg);
}
설명이 필요한 로그인 만료 콜백에서 Android EventBus 참조
간단한 부탁
String user_id = App.getInstance().getUserId();
String autograph = App.getInstance().getSignToken();
RetrofitHelper.deviceApi().devList(user_id, autograph)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseAction() {
@Override
protected void onSuc(String msg, DeviceListBean content) {
mRecyclerView.refreshComplete(0);
mDeviceListBeen = content.getDev_list();
if (mDeviceListBeen != null && mDeviceListBeen.size() > 0) {
mLayoutEmpty.setVisibility(View.GONE);
} else {
mLayoutEmpty.setVisibility(View.VISIBLE);
}
mDeviceListAdapter.setDataList(mDeviceListBeen);
}
@Override
public void onFail(String msg) {
ToastUtil.showShort(mContext, msg);
}
}, new Action1() {
@Override
public void call(Throwable throwable) {
}
});
이렇게 하면 매번 요청한 리셋이 훨씬 시원해진다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.