1,网络请求工具类
public class RetrofitManager { String baseUrl = ""; public static Retrofit getRetrofit() { String baseUrl = "http://www.58zzq.top/"; Retrofit retrofit = new Retrofit .Builder() .baseUrl(baseUrl)//必须与斜杠结尾 .addConverterFactory(ScalarsConverterFactory.create())//定义string类型 .addCallAdapterFactory(RxJava2CallAdapterFactory.create())//适配器 .build(); return retrofit; } }
2,定义接口API
public interface ApiService { @GET("CommonServlet") Observable<String> getOrderDetail(@Query("offset") int offset);//返回的是string类型,自己处理 }
3,具体实现
public void fatchData(int offset) { RetrofitManager.getRetrofit().create(ApiService.class) .getOrderDetail(offset) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<String>() { @Override public void accept(String s) throws Exception { System.out.println("获取的数值是:" + s); ArrayList<OrderDetail> arrayList = new ArrayList<>(); JSONArray jsonArray = new JSONArray(s); if (jsonArray != null && jsonArray.length() > 0) { for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); OrderDetail orderDetail = new OrderDetail(); orderDetail.setDetail(jsonObject.getString("detail")); arrayList.add(orderDetail); } } adapter.addAll(arrayList); } }, new Consumer<Throwable>() { @Override public void accept(Throwable throwable) throws Exception { System.out.println("获取的数值出错:" + throwable.getMessage()); easyrecyclerview.showEmpty(); } }); }
这就是最基础的实现方式。
依赖:
//retrofit implementation 'com.squareup.retrofit2:retrofit:2.4.0' //rejava implementation 'io.reactivex.rxjava2:rxjava:2.1.16' //rxandroid implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'com.squareup.retrofit2:converter-scalars:2.4.0' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0' implementation 'com.android.support:design:27.0.1' //rxbinding implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'