我创建了一个 .NET Core Web api 端点,我可以在其中检索一些我想在我的移动应用程序中显示的图像。我通过导航到该路线并通过邮递员在本地测试了端点,两者都工作正常(显示正确的响应)。但是,当我尝试从移动端访问端点时,它不起作用。我得到这个神秘的错误:
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 认证设置。我需要在移动端做类似的事情吗?
这是我尝试调用端点的方式。我正在使用改装:
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();
}
OnAppearing 在我的代码隐藏中我的一个观点:
protected override async void OnAppearing()
{
DualScreenLayoutInfo.PropertyChanged += OnFormsWindowPropertyChanged;
DualScreenInfo.Current.PropertyChanged += OnFormsWindowPropertyChanged;
var images = await FetchMediaService.CallImagesEndpoint(); //Where the exception is thrown
}
我在上面做错了什么?
我正在 Mac OSX 上的 Android 10 (API 29) 模拟器上对此进行测试,后端代码使用 Visual Studio for Mac 在本地运行(后端是 .NET Core 3.1 web api 项目)。