#android #api #android-emulator
#Android #API #android-эмулятор
Вопрос:
Я попытался подключиться к API, работающему локально на моем компьютере, чтобы получить значения в эмуляторе Android. Я продолжаю получать ошибку 404. Есть идеи, что нужно сделать здесь для API? Спасибо за вашу помощь.
var test = "";
var url = "http://10.0.2.2:60002/api/values/" Convert.ToInt32(Id);
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
$"{user}:{pass}")));
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
var response = await client.GetStringAsync(url);
test = response;
}
return test;
Комментарии:
1. Localhost является эмулятором, когда приложение на эмуляторе использует его. Каждое устройство является собственным локальным хостом. Пожалуйста, перефразируйте свой пост и скажите, чего вы хотите.
2.
var url = "http://10.0.2.2:60002/api/values/....
Да! Если этот URL-адрес используется приложением, запущенным на эмуляторе, оно пытается подключиться к серверу, работающему на том же компьютере, на котором запущен эмулятор.3. Если вы знаете, что означает 404, то вы также знаете, что соединение установлено, поскольку этот код ошибки отправляется веб-сервером.
Ответ №1:
используйте 127.0.0.1 в качестве IP-адреса. Это должно решить проблему.
Если нет, введите «adb shell ifconfig» или «adb shell ipaddr» в командной строке.
(один из них должен работать)
Проверьте, есть ли IP-адреса вашего компьютера. Если есть совпадающий, используйте его.
Чтобы проверить IP-адрес вашего компьютера,
- Если вы используете Windows
, введите ipconfig в командной строке. - Если вы используете Linux, введите ifconfig в своей оболочке.