我有一个基本的 lorem ipsum 响应 json url,如下所示: https://baconipsum.com/api/?type= all-meat¶s=10&start-with-lorem=10在我的 APIService 接口中,我按如下方式调用它:import io.reactivex.Observable;import retrofit2.http.GET;public interface APIService{ @GET("application/json") Observable<List<NewsFeed>> getProductData();}我使用响应数据的 NewsFeed 模型:public class NewsFeed{ private String feed; public void setFeed(String feed) { this.feed = feed; } public String getFeed() { return feed; }}然后我试图将该数据从 Url 传递到我的 recyclerview 中...... Gson gson = new GsonBuilder() .setLenient() .create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create(gson)) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); APIService apiService = retrofit.create(APIService.class); Observable<List<NewsFeed>> observable = apiService.getProductData().subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()); observable.subscribe(new Observer<List<NewsFeed>>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(List<NewsFeed> newsFeeds) { newsFeedList = new ArrayList<>(); for(int i = 0; i < newsFeeds.size(); i++) { NewsFeed newsFeedModel = new NewsFeed(); newsFeedModel.setFeed(newsFeeds.get(i).getFeed()); newsFeedList.add(newsFeedModel); } mAdapter = new NewsAdapter(getActivity(), newsFeedList); recyclerView.setAdapter(mAdapter); recyclerView.setHasFixedSize(true); recyclerView.setNestedScrollingEnabled(false); } });}我如何让这个错误消失?有没有特定的方法来处理字符串结果?
1 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
你需要 APIService 接口是这样的
import io.reactivex.Observable;
import retrofit2.http.GET;
public interface APIService
{
@GET("/api/?type=all-meat¶s=10&start-with-lorem=10")
Observable<List<String>> getProductData();
}
然后在创建Retrofit实例的地方你会这样写
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://baconipsum.com/")
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
之后,无论您在哪里使用NewsFeed类,都将其替换为String.
添加回答
举报
0/150
提交
取消