我想得到回应,但我没有得到它。我也没有收到任何错误。我做错了什么? 通过jsonscema2Pojo.org制作POJO
可能是我打电话的方式
@GET("16126940.json")
Observable <NewsFeed> getFinalData();
在soservice中是错误的
我正在处理下面的json
{
"by": "Doubleguitars",
"descendants": 70,
"id": 16126940,
"kids": [
16131536,
16131286,
16132328,
16132016,
16132256,
16131390,
16132386,
16132049,
16132088,
16132206,
16132895,
16131438,
16132082,
16132859,
16131517,
16131474,
16133112
],
"score": 173,
"time": 1515698746,
"title": "The Making of Apple’s Emoji",
"type": "story",
"url": "https://medium.com/@agzmn/the-making-of-apples-emoji-how-
designing-these-tiny-icons-changed-my-life-16317250a9ee"
}
我的活动代码
public void loadNextDataFromApi(int itemCount) {
mService = ApiUtils.getSOService2();
}
public void loadAnswers(){
mService.getFinalData().subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<NewsFeed>() {
@Override
public void onCompleted() { }
@Override
public void onError(Throwable e) { }
@Override
public void onNext(NewsFeed response) {
Log.e("response", "response------------------>" +
response.toString());
}
});
}
改造客户
public class RetrofitClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl) {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
我的服务
public interface SOService {
@GET("16126940.json")
Observable <NewsFeed> getFinalData();
}
Utility中的我保留了方法调用
public static final String HTTP_JSON_URL = "https://hackernews.firebaseio.com/v0/item/";
public static SOService getSOService2() {
return RetrofitClient.getClient(HTTP_JSON_URL).create(SOService.class);
}
答案 0 :(得分:0)
可能会忽略您的错误,因为我可以看到您的onError为空。当您使用RxJava和Retrofit命中服务时。结果将成功或落地。所以onError不应该是空白的。至少放e.printStackTrace()。并确保已调用方法loadAnswers()。您提供的代码没有名为..
的方法@Override
public void onError(Throwable e) {
e.printStackTrace()
}
我认为你需要在下面的方法中调用load answer方法。
public void loadNextDataFromApi(int itemCount) {
mService = ApiUtils.getSOService2();
loadAnswers();
}