Ожидается BEGIN_OBJECT, но

У меня большая проблема с работой в Retrofit Library в Android Studio, когда я создаю файл PHP, чтобы получить что-то или опубликовать что-то в базе данных и работаю с JSON, который возвращается из API, все в порядке, когда я работаю с localhost, НО когда я загружаю эти файлы PHP на реальный хост, я получаю эту ошибку в Android Studio:

Expected BEGIN_OBJECT but was STRING at line 1 column 1

Например:

Это мой интерфейс:

@FormUrlEncoded
@POST("checkuser.php")
Call<chechExistsUser> checkUserExists(@Field("phone") String phone);

Это класс модернизации:

public class Retrofit_Tools {
    private static Retrofit retrofit = null;

    public static Retrofit getRetrofit(String baseUrl) {

        if (retrofit==null){
            retrofit=new Retrofit.Builder()
                    .baseUrl(baseUrl)
                    .addConverterFactory(GsonConverterFactory.create(new GsonBuilder()
                            .setLenient()
                            .create()))
            .build();
        }
        return retrofit;


    }
}

и это общий класс, который я получаю в любом классе активности:

public class Common {
    private static final String baseUrl = "http://192.168.56.1/drinkshop1/";
    //private static final String baseUrl = "http://reza-ghahremani.zili.ir/drinkshop/";


    public static Retrifit_Interface getApi(){
        return Retrofit_Tools.getRetrofit(baseUrl).create(Retrifit_Interface.class);
    }
}

и я использую этот код в любой деятельности:

Retrifit_Interface retrofit=Common.getApi();

наконец, я могу использовать любой метод в интерфейсе:

retrofit.checkUserExists(etPhone.getText().toString().trim()).enqueue(new Callback<chechExistsUser>() {
            @Override
            public void onResponse(Call<chechExistsUser> call, Response<chechExistsUser> response) {
                Toast.makeText(MainActivity.this, "" + response.body().error_message, Toast.LENGTH_LONG).show();
            }

            @Override
            public void onFailure(Call<chechExistsUser> call, Throwable t) {
                Toast.makeText(MainActivity.this, "" + t.getMessage(), Toast.LENGTH_LONG).show();
                return;

            }
        });

Если проблема в файлах PHP или API, почему в localhost все в порядке? почему все нормально в localhost и не работает в realhost?

Вам необходимо разместить свой код.

Barmar 05.07.2018 19:53

все в порядке в localHost

Reza Ghahremani 06.07.2018 09:39

Вы используете одни и те же версии PHP на локальном хосте и на сервере?

Barmar 06.07.2018 17:49

как мне его найти?

Reza Ghahremani 09.07.2018 07:38

Используйте функцию phpversion().

Barmar 09.07.2018 19:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
5
58
1

Ответы 1

Несколько недель назад у друга была очень похожая проблема если не то же самое. Мы выяснили, что для модификации необходима квадратная скобка, окружающая json. Например, такой json:

{  
  "data":{  
     "info1":"something here"
    }
}

Следует преобразовать в это:

[{
  "data":{  
    "info1":"something here"
 }
}]

Может это решит твою проблему

Другие вопросы по теме