如何在 Xamarin Android (API 16 - 19) 上启用 TLSv1.1+?

Posted

技术标签:

【中文标题】如何在 Xamarin Android (API 16 - 19) 上启用 TLSv1.1+?【英文标题】:How do I enable TLSv1.1+ on Xamarin Android (API 16 - 19)? 【发布时间】:2015-10-13 20:48:12 【问题描述】:

我正在尝试为我的 android 应用(使用 Xamarin 构建)启用 TLSv1.1TLSv1.2。 Android API 16+ 支持 1.1 和 1.2,但在 API 20 (source) 之前默认不启用。谁能解释如何启用TLSv1.1TLSv1.2,并将其与.Net 的HttpClient 一起使用(或推荐HttpClient 的替代方案)。

【问题讨论】:

【参考方案1】:

安装Google Play Services - Safety Net 并调用

if (Android.OS.Build.VERSION.SdkInt <= BuildVersionCodes.Kitkat)

    ProviderInstaller.InstallIfNeededAsync(ApplicationContext, this);

InstallIfNeeded 将启用 tls1.1+ 使用。每次应用程序启动都需要一次。 接下来——需要为HttpClient使用原生的HttpMessageHandler,见ModernHttpClient

【讨论】:

您的解决方案完美运行!太感谢了。你有什么建议强制 webview 使用 ModernHttpClient 吗? @twolf 你怎么称呼这个? @Kush 我在继承自 Application (android.app.Application) 的类的构造函数中调用它一次。 谢谢@twolf,我会试试看的:) @user1967092 我有完全相同的要求,但我没有使用 Xamarin。他们有任何使用普通原生 Android 代码的解决方案吗?

以上是关于如何在 Xamarin Android (API 16 - 19) 上启用 TLSv1.1+?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin - 无法通过 Android(和 iOS)访问本地 api

如何在 Xamarin(iOS 和 Android)应用程序中使用 Windows 命名空间?

xamarin.android.support.v4 怎么安装

Xamarin.Auth OAuth Google API,用于Android的用户身份验证

带有 RestSharp 的 Paypal Rest Api 在 xamarin android 中不起作用

Xamarin.Mobile:标记为过时的基于任务的 API