Можно ли выполнить тестирование с телефона Android во время работы веб-приложения Spring на моем компьютере?
Да, конечно, вы можете, убедитесь, что вы подключены к тому же WiFi.
Одна важная вещь, которую вы должны сделать, это перейти на Terminal
поставить ipconfig
и получить оттуда свой IP, а затем с устройства или из вашей Android Studio просто измените localhost
на yourIP:8080
То есть ваш BASE_URL
должен выглядеть примерно так:
public static final String BASE_URL = "http://192.168.0.171:8080/";
Конечно, вы можете показать мне, как код будет выглядеть для моего случая?
Конечно!
Прежде всего добавьте это в ваш build.gradle
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
Затем создайте класс с именем ApiClient
class APIClient {
private static Retrofit retrofit = null;
static Retrofit getClient() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.0.176:8080/")
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
return retrofit;
}
}
Затем создайте еще один класс с именем APIInterface
interface APIInterface {
@GET("/api/v1/animals")
Call<YOURPOJOCLASS> getAnimals();
Класс YOURPOJO можно выполнить с помощью этого jsonschema2pojo
, выбрав GSON
и в Preview
Вы можете скопировать и вставить свой класс pojo.
Тогда способ, которым вы его называете, так прост:
APIInterface apiInterface = APIClient.getClient().create(APIInterface.class);
Call<YOURPOJOCLASS> call = apiInterface.getAnimals();
call.enqueue(new Callback<YOURPOJOCLASS>() {
@Override
public void onResponse(Call<YOURPOJOCLASS> call, Response<YOURPOJOCLASS> response) {
YOURPOJOCLASS pojoclass = response.body();
}
@Override
public void onFailure(Call<UserList> call, Throwable t) {
call.cancel();
}
});
Надеюсь, понятно, как это реализовать!