Xamarin iOS 无法从模拟器连接到 Rest API

Xamarin iOS won't connect to Rest API from a Simulator

我有一个连接到 API(由我编写)的 Xamarin iOS 应用程序。有时我会遇到模拟器(Windows 10 上的 运行)无法连接到 API 的问题。而相同的代码在连接到我网络上的 MAC 的 iPhone 上运行良好。

它抛出以下异常:

{System.Net.Http.HttpRequestException: An SSL error has occurred and a secure connection to the server cannot be made. 
---> Foundation.NSErrorException: Error Domain=NSURLErrorDomain Code=-1200 
"An SSL error has occurred and a secure connection to the server cannot be made." 
UserInfo={NSErrorFailingURLStringKey=https://api.staging.MyApp.com/api/v1/LogOn/, 
NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, 
_kCFStreamErrorDomainKey=3, 
_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <61E93B00-972D-4DF1-BA39-0141116988C2>.<1>, 
_NSURLErrorRelatedURLSessionTaskErrorKey=(\n    "LocalDataTask <61E93B00-972D-4DF1-BA39-0141116988C2>.<1>"\n), 
NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., 
NSErrorFailingURLKey=https://api.staging.MyApp.com/api/v1/LogOn/, 
NSUnderlyingError=0x600001cac840 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, 
_kCFNetworkCFStreamSSLErrorOriginalValue=-9816, 
_kCFStreamErrorDomainKey=3, 
_kCFStreamErrorCodeKey=-9816}}, 
_kCFStreamErrorCodeKey=-9816}\n   
--- End of inner exception stack trace ---\n  
at System.Net.Http.NSUrlSessionHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x001d4] in /Library/Frameworks/Xamarin.iOS.framework/Versions/13.18.2.1/src/Xamarin.iOS/Foundation/NSUrlSessionHandler.cs:523 \n  
at System.Net.Http.HttpClient.FinishSendAsyncBuffered (System.Threading.Tasks.Task`1[TResult] sendTask, 
System.Net.Http.HttpRequestMessage request, System.Threading.CancellationTokenSource cts, 
System.Boolean disposeCts) [0x0017e] in 
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/src/Xamarin.iOS/external/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:506 \n  at MyApp.Mobile.Api.LogOnUser (MyApp.Mobile.VM.LogOnVM vm) [0x000b2] in D:\Projects\MyAppCore\MyApp.Mobile\MyApp.Mobile\Api.cs:114 }

重复一下,完全相同的代码在物理 iphone(和 android emulators/phone)上完全相同。运行。

任何有关原因的想法都值得赞赏。谢谢

根据 Jason 提供的信息,我决定重新启动 MAC。瞧!全部恢复正常。

我想这可能是我在 PC 上启动 'ExpressVPN' 造成的。我注意到当它是 运行 时,Android 也不会连接。但是,当我停止它时,Android 没问题。但我怀疑在 MAC 重新启动之前,Apple 再也不能工作了。不是 100% 肯定是这个原因,但我希望这对其他人有帮助。

好的 - 这不是 VPN。但是重新启动 MAC 似乎每次都能解决问题。