接口
public interface Api {
/**
* http://www.waqu.com
* /v4/user/subscribedItems2.json?
* platform=and&appName=general_video&
* sid=861945036834301&profile=general_child
* &partner=21160138&appVersion=3.9.2&brand=Xiaomi&model=MI+5&osVersion=24&size=10
*/
@GET("/v4/user/subscribedItems2.json?\n" +
"platform=and&appName=general_video&\n" +
"sid=861945036834301&profile=general_child\n" +
"&partner=21160138&appVersion=3.9.2&brand=Xiaomi&model=MI+5&osVersion=24")
Observable<Fragmentone_Data> getString(@Query("size") int size);
@GET("/v4/user/qudanSubscribed.json?\n" +
"platform=and&appName=general_video&sid=861945036834301\n" +
"&profile=general_child&partner=21160138&appVersion=3.9.2\n" +
"&brand=Xiaomi&model=MI+5&osVersion=24&start=0&recommType=recomm")
Observable<FragmentTwo_Data> geStringTwo(@Query("size") int size);
@GET("/v4/user/trends.json?platform=\n" +
"and&appName=general_video&sid=861945036834301\n" +
"&profile=general_child&partner=21160138&appVersion=3.9.2\n" +
"&brand=Xiaomi&model=MI+5&osVersion=24&start=0")
Observable<FragmentThree_Data> getStringThree(@Query("size") int size);
}
Retrofit和RxJava一起使用:
private void initdata() {
Retrofit retrofit=new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.baseUrl(HttpParams.HTTP_HOST)
.build();
Api api=retrofit.create(Api.class);
Observable<Fragmentone_Data> observable=api.getString(size);
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this, new Consumer<Throwable>() {
@Override
public void accept(@NonNull Throwable throwable) throws Exception {
Log.e("flag", "--------------------->accept: 数据请求失败");
}
});
}
@Override
public void accept(@NonNull Fragmentone_Data fragmentone_data) throws Exception {
line_bottom.setVisibility(View.GONE);
if(fragmentone_data!=null){
for (int i = 0; i <fragmentone_data.getData().size() ; i++) {
data.add(fragmentone_data.getData().get(i));
}
adapter.notifyDataSetChanged();
}
}
或者这样 .subscribe(this, new Consumer() {}方法中不用this这个参数.然后就不重写失败的方法:
private void initData(final State state) {
Api.getApiService().getItem()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Tuijian>() {
@Override
public void accept(@NonNull final Tuijian tuijian) throws Exception {
//TODO这里面是得到的数据的处理......
}
});
}