У меня есть приложение для флаттера (Android Emulator) и API localhost rest. Я пытаюсь подключиться к API из приложения, но имя хоста неверно. Я попытался localhost, 10.0.2.2 и мой IP-адрес в вызове, но он не работал. Кроме того, я использую http вместо https, потому что я прочитал, что иногда Android имеют проблемы с самозаверяющими сертификатами.
Вот код флаттера:
Future<String> getData() async {
var response = await http.get(
Uri.encodeFull('http://10.0.2.2:54010/api/groups/745238'),
headers: {
"Accept": "application/json"
}
);
print(response.body);
}
Тело ответа:
I/flutter ( 4892): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
I/flutter ( 4892): <HTML><HEAD><TITLE>Bad Request</TITLE>
I/flutter ( 4892): <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
I/flutter ( 4892): <BODY><h2>Bad Request - Invalid Hostname</h2>
I/flutter ( 4892): <hr><p>HTTP Error 400. The request hostname is invalid.</p>
I/flutter ( 4892): </BODY></HTML>
Конечная точка asp. net core 3.1:
[HttpGet("{pin}")]
public ActionResult<Group> GetByPin(string pin)
{
try
{
var group = Service.GetByPin(pin);
return Ok(group);
}
catch
{
return BadRequest();
}
}
Я могу подтвердить, что я получаю данные как в браузере, так и на почтальоне. Спасибо за помощь.