Проблема с ответом на строку в Retrofit

Я использую Retrofit в моем приложении для Android, чтобы общаться с моим сервером. Во время одного из моих вызовов к серверу я ожидаю ответа String от сервера. Итак, я объявляю обратный вызов, который ожидает строковое значение. Callback<String>, В php я повторяю строку. Сказать echo "test"; Когда я нажимаю URL в браузере, эхо работает как положено test, Но в моем приложении для Android вызывается сбой обратного вызова.
Я пытался изменить php на echo "\"test\"";
В браузере: "test"
На андроиде: успех называется обратным вызовом.

Я решил это, объявив переменную.
Php:

$result = "test";
echo $result;

Браузер: test

Android: успешный обратный вызов называется.

У меня вопрос: так работает Retrofit? Или я что-то не так делаю? Кроме того, чтобы решить это, есть ли другой способ, кроме объявления переменной?

0

Решение

Callback<String> не имеет большого смысла в контексте модернизации. По умолчанию модификация работает с использованием GSON.

То, что вы на самом деле ожидаете от сервера, десериализуется с помощью json в POJO (простой объект Java).

Допустим, у вас есть модель данных (POJO), например:

public class User {
public final String name;
}

Тогда вы будете использовать обратный вызов, как это Callback<User>, И с сервера вы должны сделать: echo '{ "name" : "Simon" }';

В вашем успешном обратном вызове у вас будет экземпляр класса User с полем имени, установленным в «Simon».

Подробнее об этом здесь: http://square.github.io/retrofit/

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]