// 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 {
//
// }
// });
}
}