Не удалось подключиться к localhost/127.0.0.1 android

Я новичок в разработке для Android, и пытаюсь вызвать локальную службу.NET Web API в Android через модифицированную библиотеку. После запуска моего веб-API на IIS я получаю эту ошибку не удалось подключиться к localhost/127.0.0.1 Android.

Когда я сделал то же самое, что и предлагал http://themakeinfo.com/2015/04/retrofit-android-tutorial/, он работает нормально, но мой сервис localhost не вызывает с Android

URL моего сервиса, http://localhost:52511/api/Values/getAllStudents/5

и это дает мне вывод в формате XML в браузере тоже.

Я также пытаюсь позвонить с

public interface gitapi {
    @GET("/api/Values/GetProduct/{id}")      //here is the other url part.best way is to start using /
    public void getFeed(@Path("id") int id, Callback<gitmodel> response);
}

public class gitmodel {
    public int studentId;
    public String studentName;
    public String studentAddress;
}


String API = "http://10.0.2.2:52511";
public void CallService(View view){

        RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(API).build();
        gitapi git = restAdapter.create(gitapi.class);

        int id = 5;
        git.getFeed(id, new Callback<gitmodel>() {
            @Override
            public void success(gitmodel gitmodel, Response response) {
                Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_LONG).show();
            }

            @Override
            public void failure(RetrofitError error) {
                Toast.makeText(getApplicationContext(), "Errors", Toast.LENGTH_LONG).show();
            }
        });
}

но не повезло.

Пожалуйста, скажите мне, где я должен измениться, чтобы это работало.?

Ответ, который я получаю в браузере,

<ArrayOfstudents xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/APICall.Controllers">
<students>
<studentAddress>valsad</studentAddress>
<studentId>1</studentId>
<studentName>Keval</studentName>
</students>
<students>
<studentAddress>Hyderabad</studentAddress>
<studentId>2</studentId>
<studentName>Honey</studentName>
</students>
</ArrayOfstudents>

6 ответов

Вместо того, чтобы использовать 127.0.0.1:<PORT> используйте свой локальный IP

В вашем случае нет ничего общего с модифицированной библиотекой.

Это касается настроек вашей сети, ваш телефон и сервер IIS должны быть в одной локальной сети.

Вы можете следовать как ниже.

  1. Запустите AP на вашем сервере IIS;
  2. Подключение точки доступа к вашему телефону.

Иногда вам нужно закрыть брандмауэр безопасности на вашем сервере IIS.

У меня была та же проблема, что и у вас (не удалось подключиться к localhost / 127.0.0.1). Прежде всего, я рекомендую вам прочитать это: руководство разработчика Android (основная часть этого на изображении ↓)

У меня было все это, значит A, B и C. Как C(эмулятор) я использовал Genymotion. И я решил свою проблему, изменив настройки сети на нем.

ВАЖНО: мой адрес в baseURL был: "localhost: 8099 /"

Давайте посмотрим: вам нужно нажать " Настройки" → " Сеть" → " Использовать прокси-сервер HTTP" → ввести свой IP-адрес и порт (в моем случае это было 8099) → закрыть. Посмотреть подробности на изображении ↓

У меня та же проблема, и я решаю ее, изменив IP-адрес вместо «localhost»:

  1. откройте cmd(если вы используете Windows): введите «ipconfig» и посмотрите IP-адрес вашего компьютера (убедитесь, что ваш компьютер и ваше устройство Android подключены к одной и той же сети).
  2. удалите «localhost» в URL-адресе и используйте ip(ip вашего компьютера на шаге 1).
  3. снова запустите проект и проверьте

На самом деле это помогло при использовании 2 приложений на одном устройстве Android (Android 9).

      android:usesCleartextTraffic="true"

Вы можете попробовать это в androidmanifest.xml

android:usesCleartextTraffic="true"
Другие вопросы по тегам