简单使用retrofit和rxjava

public interface APIService {




//    http://120.27.23.105/product/getCatagory
    @GET("/product/{aaa}")
    Call<ResponseBody> listRepos(@Path("aaa") String path);




    @GET("/product/{aaa}")
    Call<Bean> listReposBean(@Path("aaa") String path);


//    http://120.27.23.105/product/getProductDetail
//    pid=1
    @GET("/product/getProductDetail")
    Call<DetailBean> listReposBeanQuery(@Query("pid") String pid,@Query("source") String source);






    @GET("/product/getProductDetail")
    Call<DetailBean> listQueryMap(@QueryMap Map<String,String> map);






    @FormUrlEncoded
    @POST("/product/getProductDetail")
    Call<DetailBean> listPost(@Field("pid") String pid, @Field("source") String source);




    @Headers({"Accept: application/vnd.github.v3.full+json",
            "User-Agent: Retrofit-Sample-App"})
    @FormUrlEncoded
    @POST("/product/getProductDetail")
    Call<DetailBean> listPostMap(@FieldMap Map<String,String> map);






    @POST("/product/getProductDetail")
    Call<DetailBean> listBody(@Body PostBean bean);






    @GET
    Call<DetailBean> listUrl(@Url String url);






    // rxjava
    @FormUrlEncoded
    @POST("/product/getProductDetail")
    Observable<DetailBean> listPostRxJava(@FieldMap Map<String,String> map);

}



public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);




//        Retrofit retrofit = new Retrofit.Builder()
//                .baseUrl("http://120.27.23.105")
//                .addConverterFactory(GsonConverterFactory.create())
//                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
//                .validateEagerly(true)
//                .build();
//
//        APIService service = retrofit.create(APIService.class);
//
//
//        Map<String,String> map = new HashMap<>();
//        map.put("pid","1");
//        map.put("source","android");
//
//
//        Observable<DetailBean> observable =  service.listPostRxJava(map);
//
////        subscribeOn 被观察者所在的线程
////        observeOn 观察者所在的线程
//        observable.subscribeOn(Schedulers.io())
//                .observeOn(AndroidSchedulers.mainThread())
//                .subscribe(new Consumer<DetailBean>() {
//                    @Override
//                    public void accept(DetailBean detailBean) throws Exception {
//                        System.out.println("detailBean = " + detailBean.getData().toString());
//
//                    }
//                }, new Consumer<Throwable>() {
//                    @Override
//                    public void accept(Throwable throwable) throws Exception {
//
//                        System.out.println("throwable = " + throwable.getMessage());
//
//                    }
//                }, new Action() {
//                    @Override
//                    public void run() throws Exception {
//
//                    }
//                }, new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//
////                        disposable.dispose();
//
//                    }
//                });






        findViewById(R.id.text).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


//                Flowable.create(new FlowableOnSubscribe<String>() {
//                    @Override
//                    public void subscribe(FlowableEmitter<String> e) throws Exception {
//
//                        for(int i=0;i<200;i++){
//                            e.onNext("" + i);
//                        }
//                    }
//                }, BackpressureStrategy.MISSING)
//                        .subscribeOn(Schedulers.io())
//                        .observeOn(AndroidSchedulers.mainThread())
//                        .subscribe(new Consumer<String>() {
//                            @Override
//                            public void accept(String s) throws Exception {
//
//                                Thread.sleep(200);
//                                System.out.println("s = " + s);
//                            }
//                        });




//                Flowable.create(new FlowableOnSubscribe<String>() {
//                    @Override
//                    public void subscribe(FlowableEmitter<String> e) throws Exception {
//                        e.onNext("111");
//                    }
//                },BackpressureStrategy.BUFFER).map(new Function<String, Integer>() {
//                    @Override
//                    public Integer apply(String s) throws Exception {
//
//                        System.out.println("s = " + s);
//                        return Integer.valueOf(s);
//                    }
//                }).subscribe(new Consumer<Integer>() {
//                    @Override
//                    public void accept(Integer integer) throws Exception {
//
//
//                        System.out.println("integer = " + integer);
//
//                    }
//                });


                // 本地数据裤 取数据  -> 网络请求 -> 显示数据




//                Flowable.create(new FlowableOnSubscribe<String>() {
//                    @Override
//                    public void subscribe(FlowableEmitter<String> e) throws Exception {
//
//                        e.onNext("a");
//                        e.onNext("b");
//                        e.onNext("c");
//                取数据
//                    }
//                },BackpressureStrategy.BUFFER)
//                        .flatMap(new Function<String, Publisher<ArrayList<String>>>() {
//                            @Override
//                            public Publisher<ArrayList<String>> apply(String s) throws Exception {
//
//                网络请求
//                                ArrayList<String> list = new ArrayList<>();
//
//                                for(int i=0;i<3;i++){
//                                    list.add(s + " -- " + i);
//                                }
//
//                                return  Flowable.just(list).delay(1,TimeUnit.SECONDS) ;
//
//
//                            }
//                        }).subscribe(new Consumer<ArrayList>() {
//                    @Override
//                    public void accept(ArrayList arrayList) throws Exception {
//
//                        for (int i=0;i<arrayList.size();i++){
//                            System.out.println("arrayList = " + arrayList.get(i));
//                        }
//
//                XIANSHI
//
//                    }
//                });




//                Flowable.just("1","1","33","55").subscribe(new Consumer<String>() {
//                    @Override
//                    public void accept(String s) throws Exception {
//
//                    }
//                });








                Flowable.create(new FlowableOnSubscribe<String>() {
                    @Override
                    public void subscribe(FlowableEmitter<String> e) throws Exception {


                        e.onNext("a");


                        e.onNext("b");


                        e.onNext("c");
                    }
                },BackpressureStrategy.BUFFER)
                        .concatMap(new Function<String, Publisher<ArrayList<String>>>() {
                            @Override
                            public Publisher<ArrayList<String>> apply(String s) throws Exception {
                                ArrayList<String> list = new ArrayList<>();
//
                                for(int i=0;i<3;i++){
                                    list.add(s + " -- " + i);
                                }


                                return  Flowable.just(list).delay(1,TimeUnit.SECONDS) ;
                            }
                        }).subscribe(new Consumer<ArrayList<String>>() {
                    @Override
                    public void accept(ArrayList<String> arrayList) throws Exception {
                        for (int i=0;i<arrayList.size();i++){
                            System.out.println("arrayList = " + arrayList.get(i));
                        }
                    }
                });






            }












        });




//
//        Observable.create(new ObservableOnSubscribe<String>() {
//            @Override
//            public void subscribe(ObservableEmitter<String> e) throws Exception {
//
//            }
//        }).subscribe(new Consumer<String>() {
//            @Override
//            public void accept(String s) throws Exception {
//
//            }
//        });




























    }
}


猜你喜欢

转载自blog.csdn.net/wg_1176075838/article/details/78980727