Я создал конечную точку веб-API. NET Core, где я могу получить некоторые изображения, которые я хочу отобразить в своем мобильном приложении. Я проверил конечную точку локально, перейдя по этому маршруту и через почтальона, и оба работают нормально (показывая правильный ответ). Однако, когда я пытаюсь попасть в конечную точку с мобильной стороны, это не работает. Я получаю эту криптовую c ошибку:
System.Net.Http.HttpRequestException: Network subsystem is down
Вот еще информация об исключении:
System.Net.Http.HttpRequestException: Network subsystem is down ---> System.Net.Sockets.SocketException: Network subsystem is down
at System.Net.Http.ConnectHelper.ConnectAsync (System.String host, System.Int32 port, System.Threading.CancellationToken cancellationToken) [0x000c8] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ConnectHelper.cs:65
Я не уверен, что я делаю неправильно на мобильной стороне. Я знаю, чтобы почтальон показывал это, мне пришлось отключить настройку SSL-сертификации. Нужно ли делать что-то подобное на мобильной стороне?
Вот как я пытаюсь позвонить на конечную точку. Я использую refit:
public static class FetchMediaService
{
public static INevarroApi apiService;
static string baseUrl = "https://localhost:5001";
public static async Task<List<Uri>> CallImagesEndpoint()
{
apiService = RestService.For<INevarroApi>(baseUrl);
var images = await apiService.GetImages();
return images;
}
}
Где:
public interface INevarroApi
{
[Get("/images")]
Task<List<Uri>> GetImages();
}
On Появляется в моем коде для одного из моих представлений:
protected override async void OnAppearing()
{
DualScreenLayoutInfo.PropertyChanged += OnFormsWindowPropertyChanged;
DualScreenInfo.Current.PropertyChanged += OnFormsWindowPropertyChanged;
var images = await FetchMediaService.CallImagesEndpoint(); //Where the exception is thrown
}
Что я делаю неправильно над?
Я тестирую это на эмуляторе Android 10 (API 29) на Ma c OSX, и внутренний код выполняется локально с использованием Visual Studio для Ma c (бэкэнд является. NET Core 3.1 проект веб-API).