Maison > Questions et réponses > le corps du texte
当 是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 能打印出请求成功状态和返回的数据,只是回调都没走
PHPz2017-04-18 09:08:57
J'ai également rencontré ce problème, c'est-à-dire que lorsqu'une erreur se produit, l'objet n'est pas renvoyé, mais une chaîne est renvoyée, et elle ne peut alors pas être analysée. Actuellement, elle affiche uniquement un message d'erreur codé en dur, ou. utilise directement l'analyse de chaînes. Je ne sais pas s'il existe un moyen de le résoudre<🎜 >
ringa_lee2017-04-18 09:08:57
Vous pouvez certainement l'obtenir en renvoyant String. Postez le code source. Comment l'avez-vous écrit ?
天蓬老师2017-04-18 09:08:57
Le paramètre transmis à getDemoData dans la première méthode doit être écrit de manière incorrecte. Il doit être Subscriber<DemoService
>