У меня есть перекрестная проверка большого количества ссылок, прежде чем задавать вопрос. Как и большинство людей, я звоню в веб-службу и получаю вышеуказанный результат. Моя проблема заключается в гораздо более конкретно, поэтому, прежде чем просить позвольте мне добавить мой code snippet
public static WebService getRestService(String newApiBaseUrl, String accessToken)
{
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
if (BuildConfig.DEBUG) {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
httpClient.addInterceptor(logging);
}
Gson gson = new GsonBuilder()
.setLenient()
.create();
restBuilder = new Retrofit.Builder()
.baseUrl(newApiBaseUrl)
.client(httpClient.build())
.addConverterFactory(GsonConverterFactory.create(gson));
if (accessToken != null) {
AuthenticationInterceptor interceptor =
new AuthenticationInterceptor(accessToken);
if (!httpClient.interceptors().contains(interceptor)) {
httpClient.addInterceptor(interceptor);
restBuilder.client(httpClient.build());
}
}
retrofit = restBuilder.build();
return retrofit.create(WebService.class);
}
Пожалуйста, игнорируйте переводчика. Это мой класс генератора услуг, через который вызывается весь веб-сервис. Я вызываю метод POST, который возвращает мне простой ответ.
Я могу видеть свой правильный ответ в «Android Monitor». Но когда он проходит через JsonConverterFactory, он дает мне ошибку выше. Одна вещь, которую я точно знаю, что веб-служба возвращает простой текстовый ответ, поскольку нет ничего конкретного для возврата в приложение. Есть ли способ, с помощью которого я могу преобразовать свой текстовый ответ в класс. Пожалуйста, откликните, если я пропущу что-нибудь.
добавления Кроме того, мой метод интерфейса
@Headers({
Constants.ApiHeader.CONTENT_TYPE_JSON
})
@POST("POST_URL/{number}")
Call<MyResponseModel> getActualProductLocation(@Header("access_token") String accessToken, @Path("number") String number, @Body List<MyRequestModel> body);
Update мне удалось получить часть фрагмента кода с сервера. Это то, что их реакция выглядит следующим образом:
Response.status(200).entity("Response Success").build()
сообщение 'MyResponseModel'. Скорее всего, это не в правильном формате. – azizbekian
Его пустая, поскольку нет пары значений ключа, возвращаемой сервером (данные JSON). Должен ли я определять любую строковую переменную в классе? – Android
* Моя проблема более конкретная * как это сделать? Эти проблемы одинаковы: данные json не соответствуют ожидаемому конвертеру. Понятно, что gson-конвертер не найдет одиночную строку, действительную json (это, правда) –