Не удалось подключиться к 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 должны быть в одной локальной сети.
Вы можете следовать как ниже.
- Запустите AP на вашем сервере IIS;
- Подключение точки доступа к вашему телефону.
Иногда вам нужно закрыть брандмауэр безопасности на вашем сервере IIS.
У меня была та же проблема, что и у вас (не удалось подключиться к localhost / 127.0.0.1). Прежде всего, я рекомендую вам прочитать это: руководство разработчика Android (основная часть этого на изображении ↓)
У меня было все это, значит A, B и C. Как C(эмулятор) я использовал Genymotion. И я решил свою проблему, изменив настройки сети на нем.
ВАЖНО: мой адрес в baseURL был: "localhost: 8099 /"
Давайте посмотрим: вам нужно нажать " Настройки" → " Сеть" → " Использовать прокси-сервер HTTP" → ввести свой IP-адрес и порт (в моем случае это было 8099) → закрыть. Посмотреть подробности на изображении ↓
У меня та же проблема, и я решаю ее, изменив IP-адрес вместо «localhost»:
- откройте cmd(если вы используете Windows): введите «ipconfig» и посмотрите IP-адрес вашего компьютера (убедитесь, что ваш компьютер и ваше устройство Android подключены к одной и той же сети).
- удалите «localhost» в URL-адресе и используйте ip(ip вашего компьютера на шаге 1).
- снова запустите проект и проверьте
На самом деле это помогло при использовании 2 приложений на одном устройстве Android (Android 9).
android:usesCleartextTraffic="true"
Вы можете попробовать это в androidmanifest.xml
android:usesCleartextTraffic="true"