android - Retrofit Rxjava 在返回 String(不是Java bean)時(shí)沒有走 rx 回調(diào)?
問題描述
當(dāng) 是Javabean 時(shí)就能得到回調(diào).之前提問匆忙沒有貼代碼,好多人要是沒遇上還真不知道我在說啥.
代碼片段如下:
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 能打印出請(qǐng)求成功狀態(tài)和返回的數(shù)據(jù),只是回調(diào)都沒走
問題解答
回答1:這個(gè)問題我也遇到了,就是出現(xiàn)錯(cuò)誤的時(shí)候不返回對(duì)象,返回string,然后解析不了,目前只是提示寫死的錯(cuò)誤信息,或者直接用string解析,不知道有什么辦法可以解決
回答2:返回String肯定能得到,貼源碼啊,你怎么寫的
回答3:出錯(cuò)了 就在onError里處理呀
回答4:第一個(gè)方法中g(shù)etDemoData傳入的參數(shù)應(yīng)該是寫錯(cuò)了,應(yīng)該是Subscriber<DemoService> subscriber,而不是Subscriber<String> subscriber
相關(guān)文章:
1. mysql 可以從 TCP 連接但是不能從 socket 鏈接2. java - jdbc如何返回自動(dòng)定義的bean3. javascript - 按鈕鏈接到另一個(gè)網(wǎng)址 怎么通過百度統(tǒng)計(jì)計(jì)算按鈕的點(diǎn)擊數(shù)量4. mysql updtae追加數(shù)據(jù)sql語句5. 怎么php怎么通過數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。6. Python處理Dict生成json7. 大家都用什么工具管理mysql數(shù)據(jù)庫?8. python - 請(qǐng)問這兩個(gè)地方是為什么呢?9. 請(qǐng)教一個(gè)mysql去重取最新記錄10. mysql的循環(huán)語句問題
