[英]Not able to retrieve response from Rxjava Retrofit
我試圖得到回應,但我沒有得到回應。 我也沒有任何錯誤。 我做錯了什么? 通過jsonscema2Pojo.org制作POJO
可能是我打電話的方式
@GET("16126940.json")
Observable <NewsFeed> getFinalData();
在服務中是錯誤的
我正在處理下面的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();
}
在實用程序中,我保留了方法調用
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);
}
可能是您的錯誤被忽略了,正如我所看到的,您的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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.