У меня большая проблема с работой в Retrofit Library в Android Studio,
когда я создаю файл PHP для получения чего-либо или публикую что-то в базе данных и работаю на JSON, который возвращается из API, все нормально, когда я работаю с localhost, НО, когда я загружаю эти файлы PHP на реальный хост, я получаю эту ошибку в Android Studio:
Ожидается BEGIN_OBJECT, но в строке 1 столбца 1
указано значение STRING *.
Например:
Это мой интерфейс:
@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?