android - Retrofit Rxjava 在返回 String(不是Java bean)時沒有走 rx 回調?
問題描述
當 是Javabean 時就能得到回調.之前提問匆忙沒有貼代碼,好多人要是沒遇上還真不知道我在說啥.
代碼片段如下:
public void getDemoData(Subscriber<String> subscriber){HttpService.getInstance().create(DemoService.class).getDemoPicture('params1',params2,params3,'params4').subscribeOn(Schedulers.io()).unsubscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(subscriber);
private void requestData() {HttpMethods.getInstance().getDemoData(new Subscriber<String>() { @Override public void onCompleted() { Toast.makeText(MainActivity.this, 'ok', Toast.LENGTH_SHORT).show(); } @Override public void onError(Throwable e) {showToast(getResources().getString(R.string.error_data)); } @Override public void onNext(String str) { //....} }}); }
private HttpService() {OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();httpClientBuilder.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);httpClientBuilder.addInterceptor(interceptor).build();retrofit = new Retrofit.Builder().client(httpClientBuilder.build()).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()).baseUrl(BingUrl.BING).build(); }
HttpLoggingInterceptor 能打印出請求成功狀態和返回的數據,只是回調都沒走
問題解答
回答1:這個問題我也遇到了,就是出現錯誤的時候不返回對象,返回string,然后解析不了,目前只是提示寫死的錯誤信息,或者直接用string解析,不知道有什么辦法可以解決
回答2:返回String肯定能得到,貼源碼啊,你怎么寫的
回答3:出錯了 就在onError里處理呀
回答4:第一個方法中getDemoData傳入的參數應該是寫錯了,應該是Subscriber<DemoService> subscriber,而不是Subscriber<String> subscriber
相關文章:
1. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現2. javascript - ...mapGetters和...mapState獲取到的state,怎么拿來在methods中操作?3. python - linux怎么在每天的凌晨2點執行一次這個log.py文件4. javascript - 在 vue里面用import引入js文件,結果為undefined5. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?6. Java反射問題:為什么android.os.Message的recycleUnchecked方法不能通過反射獲取到?7. php如何獲取訪問者路由器的mac地址8. git - 使用淘寶npm安裝hexo出現問題?9. php - 微信開發驗證服務器有效性10. [python2]local variable referenced before assignment問題
