Simple-Retrofit-API-request-and-Data-Loading Здесь я просто добавляю проект, в котором создаю вызов API для доступа к данным из базы данных, используя библиотеку модернизации;которая является ведущей библиотекой для доступа к данным в сети.И отобразить полученные данные в формате списка.Создайте проект Simple Android Studio с пустой активностью.Создайте Адаптер и элемент активности для отображения обычных списков в приложении для Android.Теперь создайте класс App, расширяющий Application, поскольку класс Application - это одноэлементный объект, к которому вы можете получить доступ из любого действия или из любого места, где у вас есть объект Context.Вы можете проверить более подробную информацию о классе приложения из https://github.com/codepath/android_guides/wiki/Understanding-the-Android-Application-Class Зачем расширять класс приложения? https://developer.android.com/reference/android/app/Application.html
Добавить android: name = ". YourApplication", т.е.имя класса, расширяющего класс приложения в Android.и класс будет похож на открытый класс. YourApplication расширяет Application Init Retrofit в классе приложения
//network code start
//init http logger
httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
// init client client = new OkHttpClient.Builder()
.addInterceptor(httpLoggingInterceptor)
.addInterceptor(new Interceptor() {
@Override public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Request request2 = request.newBuilder().build();
return chain.proceed(request2);
}
}).connectTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).build();
Gson gson = new GsonBuilder().setLenient().create();
Retrofit mRetrofit = new Retrofit.Builder().baseUrl(Constants.API_BASE_URL).client(client).addConverterFactory(GsonConverterFactory.create(gson)).build();
mWebservice = mRetrofit.create(Webservice.class);
, в то время как Constants.API_BASE_URL является базовым URL. Создайте класс Webervice.class, где вы можете вызывать API с параметрами, например, в случае GET.Метод:
@GET("webservices/GetAllClientsDemoRetro.php")
Call updateChatStatus();
В случае метода POST:
@FormUrlEncoded
@Headers({"Content-Type: application/x-www-form-urlencoded"})
@POST("webservices/GetAllClientsDemoRetro.php")
Вызов updateChatStatus ();
Более подробную информацию о модификации можно найти в официальном объявлении API здесь: http://square.github.io/retrofit/
Мы можем проанализировать значения с помощью POJO, т.е. Setter и Getter, используя класс Parceble.Поскольку имя ключа синтаксического анализа должно быть равно значению, которое мы получаем из ответа JSON.Класс POJO должен быть объявлен так же, как открытый класс. ClientData реализует Parcelable {затем объявить ключи в классе, значения ключей означают
public class ClientData implements Parcelable
{
public String client_id;
public String company_name;
public String address_line;
public String city;
public String pincode;
public String state;
public String country;
}
Теперь, используя Alt + Enter, т. Е. Выберите опцию Добавить реализацию Parceble и нажмите Enter.Затем автоматически будет добавлен класс parceble.Также вы должны добавить метод Setter и Getter в класс, используя Alt + Insert.Примечание. Не добавляйте методы Setter и Getter для метода CREATER: Creater <>. Если вы хотите использовать другой ключ, отличный от ключа ответа JSON, вам следует использовать сериализацию.Когда я использовал тот же ключ, он был похож на public String client_id;Но когда я использую Сериализацию, я могу использовать, например, @Serializattion («client_id») public String ClientID;Теперь последний, но не список, мы вызываем API с помощью модернизации и используем ответ для просмотра элемента в списке -
RetroFitApplication.getWebservice().updateChatStatus().enqueue(new Callback() {
@Override public void onResponse(Call call, Response response) {
Log.d("retrofilt success", "" + response.body());
if (response.body() != null) {
clientResponceData = response.body();
Gson gson = new Gson();
String body = gson.toJson(response.body());
Log.d("retrofilt success2", "clientData" + clientResponceData.getResponse());
if (clientResponceData.getResponse() != null) {
initRV();
}
} else {
// Empty Client List Toast.makeText(ClientList.this, "Empty List", Toast.LENGTH_SHORT).show();
}
}
@Override public void onFailure(Call call, Throwable t) {
Log.d("retrofilt error", "" + t);
Toast.makeText(ClientList.this, "No Internet Connection", Toast.LENGTH_SHORT).show();
}
});
Используя конструкцию в адаптере, мы можем использовать значения из ответа.Ребята Я добавил этот репозиторий, чтобы получить полную идею вызова API и получить ответ от сервера с помощью библиотеки Retrofit.Я пишу все эти документы в деталях простым словом.