Я боролся с этой проблемой в последние часы и искал руководство.
У меня есть запрос на обновление, который я хочу написать в общем виде, что означает, что я хотел бы получить JSONлюбого рода, например мешок с имуществом, и возможность работать с ним позже в приложении.
Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я пытаюсь получить его как JSON или String (а не какМодель или ResponseBody) приложение вылетает.Я думаю, что арест произошел из-за декодирования на основе того, что я вижу.
Это конструктор Retrofit.
public Retrofit getRetrofit(OkHttpClient okHttpClient) {
Retrofit retrofit = new Retrofit
.Builder()
.baseUrl("https://reqres.in/")
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(MoshiConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
return retrofit;
}
Интерфейс REST очень прост.
public interface IRestService {
@GET("api/users?page=2")
Observable<String> queryPage();
}
Я также попытался отладить эту проблему, и я добавил свой перехватчик регистратора, который, очевидно, не работает, и я понятия не имею, почему:
public OkHttpClient getOkHttpClient(Interceptor requestInterceptor) {
// HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
// loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
HttpLoggingInterceptor loggingInterceptor =
new HttpLoggingInterceptor((msg) -> {
Log.d(HttpLoggingInterceptor.class.toString(), msg);
});
//loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
LoggingInterceptor customLoggingInterceptor = new LoggingInterceptor();
return new okhttp3.OkHttpClient.Builder()
.connectTimeout(CONNECT_TIMEOUT_IN_MS, TimeUnit.MILLISECONDS)
.addInterceptor(requestInterceptor)
.addInterceptor(loggingInterceptor)
.addInterceptor(customLoggingInterceptor)
.build();
}
Пожалуйста, дайте мне знать, если что-то я делаю неправильнов получении JSON в общей форме, без модели.И было бы очень полезно, если бы я мог получить несколько советов о том, как отлаживать такого рода проблемы, поскольку регистратор ничего не регистрировал в Android Studio.Извините, если ни один из этих вопросов не является глупым, но я только начал создавать свое первое приложение на Android.У меня есть опыт работы на многих других языках.