ios - Xamarin IOS - HttpClient - API 在一台 iPad 而不是另一台上工作
问题描述
我正在使用“ https://www .******pi.********^$%.org.uk”,它在一个 iPAD 上工作,而在另一个 iPAD 上不工作。我有相同的配置设备(软件和硬件)。我连接到同一个网络。
API 调用已使用 HttpClient 类完成。它在 Android 中运行良好。
此 API 调用适用于某些 iPad,但不适用于具有相同操作系统和配置的某些 iPad。任何结论都是 iOS 设备上的随机行为。
我正在研究 Xamarin Native 并尝试了以下解决方案但没有成功 -
使用 NSURLSession (swift2,xcode7,ios9) 连接到具有无效证书的服务器
System.Net.ServicePointManager.ServerCertificateValidationCallback = 委托 { 返回真;};
以下是我得到的问题 -
{System.Net.WebException:此服务器的证书无效。您可能正在连接到伪装成“**&^& ^& %^”的服务器。(&^ (&^ ^&.org.uk”,这可能会使您的机密信息面临风险。---> Foundation.NSErrorException:抛出了“Foundation.NSErrorException”类型的异常。--- 内部异常堆栈跟踪结束 --- 在 /Library/Frameworks/Xamarin.iOS.framework/Versions/11.12.0.4/src/Xamarin.iOS 中的 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] /mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:152 在 /Library/Frameworks/Xamarin 中的 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task 任务)[0x00037] .iOS.framework/Versions/11.12.0.4/src/Xamarin.iOS/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 在 System.Runtime.CompilerServices.TaskAwaiter。
任何帮助表示赞赏。
解决方案
“此服务器的证书无效。” 您必须在服务器上安装受信任的证书。
另一种选择是将其放入 AppDelegate 中:
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
它将有效地忽略证书验证过程(但不建议用于生产!)
推荐阅读
- amazon-web-services - 无法让我的 Chrome 扩展程序从 Amazon RDS 获取数据
- typescript - 在打字稿中实现重载时使用接口//类型和提供多种类型注释的区别
- typescript - React-Native 中的映射函数
- python - 如何创建跳过功能pygame?
- sql - 有人可以为我解决这个子查询问题吗?
- python - MAE 使用 Pipeline 和 GridSearchCV
- java - 我正在尝试创建 mcq 论文并从适配器单选按钮 android 中的 json 获取值
- javascript - 我正在用javascript写一个猜谜游戏。我不知道如何通过代码验证数字在 0 到 100 之间
- sql - T-SQL 以表格格式解析 XML 响应
- aws-step-functions - 如何使用 CDK 为 AWS Step Functions 创建 VPC 终端节点?