У меня есть приложение для Android, которое использует retrofit2 для выполнения вызовов API, но когда я пытаюсь вызвать сервер, эта ошибка выдается java.net.ConnectException: Failed to connect to /192.168.1.5:3000
.
Когда я настраиваю свой API-клиент для модернизации, я явно задаю другой базовый URL-адрес для приложения, но он всегда показывает эту ошибку.
ApiClient.java
public class ApiClient {
private static Retrofit retrofit;
public static Retrofit getRetrofitInstance() {
if (retrofit == null) {
final OkHttpClient client = setTokenToHeader();
retrofit = new retrofit2.Retrofit.Builder()
.client(client)
.baseUrl("http://192.168.1.3:3000/")
//.baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
private static OkHttpClient setTokenToHeader() {
return new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@NonNull
@Override
public Response intercept(@NonNull Chain chain) throws IOException {
Request newRequest = chain.request()
.newBuilder()
.addHeader("Authorization", "Bearer " + UserInfo.getToken())
.build();
return chain.proceed(newRequest);
}
}).build();
}
}
Это функция, когда я делаю серверный вызов, но я попытался отладить его, и когда я вижу значение retrofit.baseUrl()
, оно дает "http://192.168.1.5:3000"
, и у меня нет этого IP-адреса во всем моем проекте.
private void login() {
final Retrofit retrofit = ApiClient.getRetrofitInstance();
Log.e("URL: ", retrofit.baseUrl());
final userApiInterface apiInterface = retrofit.create(userApiInterface.class);
// Body
final User loginUser = new User();
loginUser.setUserEmail(Email.getText().toString());
loginUser.setPassword(Password.getText().toString());
final Call<User> call = apiInterface.Login(loginUser);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(@NonNull Call<User> call, @NonNull Response<User> response) {
handleLoginResponse(response);
}
@Override
public void onFailure(@NonNull Call<User> call, @NonNull Throwable t) {
customToast.internalError();
Log.e("Retrofit error: ", String.valueOf(t));
}
});
}