Я использую PHP Slim Framework для создания приложения REST API для Android.
Я публикую тело в приложении, оно хорошо работает и добавляет данные в MySQL. Но у меня проблемы с ответом.
Мой ответ Модель JSON проста:
{success:'yes'}
Когда я пытаюсь получить ответ после добавления данных, Retrofit работает по методу сбоя. но добавление данных работает хорошо. Я не знаю, где я пропустил. Вот мои коды;
Файл PHP Slim Framework
$response->withHeader('Content-Type', 'application/json');
$response->getBody()->write("{success:'yes'}");
return $response;
} catch (PDOException $e) {
echo '{"error": {"text": ' . $e->getMessage() . '}';
}
Модель Android-ответа
public class Response_Success {
@SerializedName("success")
@Expose
String success;
public Response_Success(String success) {
this.success = success;
}
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
Класс интерфейса
public interface API_Service {
@Headers("content-type: application/json")
@POST("api/user/add")
Call<Response_Success> addFacebookUser(@Body UserFacebook userFacebook);}
Вызов API в MainActivity
API_Service service = Client.getRetrofitInstance().create(API_Service.class);
Call<Response_Success> userFacebookCall = service.addFacebookUser(userNew);
userFacebookCall.enqueue(new Callback<Response_Success>() {
@Override
public void onResponse(Call<Response_Success> call, Response<Response_Success> response) {
Toast.makeText(MainActivity.this, ""+response.body().getSuccess(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<Response_Success> call, Throwable t) {
Toast.makeText(MainActivity.this, "was wrong", Toast.LENGTH_SHORT).show();
}
});
Режим отладки в андроид студии; Я получаю MaltFormedJsonException, но я добавил это исключение в try catch.