一,首先,接口统一定义为
二,网络请求具体实现@GET("{url}") Observable<ResponseBody> getPhoneNumIP(@Path("url") String url, @Query("appkey") String appkey, @Query("shouji") String shouji);
三,定义对应的java 基类beanRetrofit retrofit = Getretrofit.initretrofit(baseurl); APIService service = retrofit.create(APIService.class); service.getPhoneNumIP("shouji/query","bb5093902ab6f37d", "185652856824") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .map(new Function<ResponseBody, MyNumBean>() { @Override public MyNumBean apply(ResponseBody responseBody) throws Exception { String msg = responseBody.string(); LogUtils.d(msg); MyNumBean myNumBean = GsonJsonUtils.parseJson2Obj(msg, MyNumBean.class); LogUtils.object(myNumBean); return myNumBean; } }) .subscribeWith(new Observer<MyNumBean>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(MyNumBean infoBean) { mViewById.setText(infoBean.getResult().getCompany()); } @Override public void onError(Throwable e) { LogUtils.d(e.getMessage()); } @Override public void onComplete() { } });
public class BaseBean<T> { private String status; private String msg; private T result; public BaseBean() { } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getResult() { return result; } public void setResult(T result) { this.result = result; } }
四,具体业务beanpublic class MyNumBean extends BaseBean<NumIP>{ }
public class NumIP { /** * province : 浙江 * city : 杭州 * company : 中国移动 * cardtype : GSM */ private String province; private String city; private String company; private String cardtype; public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; } public String getCardtype() { return cardtype; } public void setCardtype(String cardtype) { this.cardtype = cardtype; } }