У меня большая проблема с работой в 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?
все в порядке в localHost
Вы используете одни и те же версии PHP на локальном хосте и на сервере?
как мне его найти?
Используйте функцию phpversion().






Несколько недель назад у друга была очень похожая проблема если не то же самое. Мы выяснили, что для модификации необходима квадратная скобка, окружающая json. Например, такой json:
{
"data":{
"info1":"something here"
}
}
Следует преобразовать в это:
[{
"data":{
"info1":"something here"
}
}]
Может это решит твою проблему
Вам необходимо разместить свой код.