Xam 表单中的 ModernHttpClient。在最新版本中是不是有必要?
Posted
技术标签:
【中文标题】Xam 表单中的 ModernHttpClient。在最新版本中是不是有必要?【英文标题】:ModernHttpClient in Xam Forms. Is it necessary in latest releases?Xam 表单中的 ModernHttpClient。在最新版本中是否有必要? 【发布时间】:2016-07-17 23:06:55 【问题描述】:大多数建议要求在 ios 和 android 中使用 ModernHttpClient,包括 xam 表单。但是 HttpClient 现在在所有平台的 Xamarin Forms 中的 system.net 中。那么 ModernHttpClient 仍然是必需品吗?通过 system.net.httpclient 获得有关 ModernHttpClient“为什么”的链接?谢谢
【问题讨论】:
【参考方案1】:我希望我能对此有所了解!我仍然建议使用 ModernHTTPClient。 ModernHTTPClient 和 .NET 实现之间的区别在于 ModernHTTPClient 实际上以 .NET 友好的语法包装了本机 HTTP 处理程序。这提供了对诸如 TLS 1.2 支持等项目的访问,Mono 目前不直接支持[1]。
使用 ModernHTTPClient 还可以获得一些性能提升,因为本机实现再次“在后台”使用。
我希望这能在一定程度上消除分歧。谢谢!
[1] 最新版本的 Xamarin.iOS 允许使用 Apple TLS,但这不适用于 Android
【讨论】:
您可以在Xamarin.Android
上使用XA_HTTP_CLIENT_HANDLER_TYPE
,以便使用“本机”java.net.URLConnection
@developer.xamarin.com/guides/cross-platform/…
有一些指向性能增益等的链接吗?试图找到“硬文档”。无法挖掘出太多东西,我想我在那里遗漏了一些东西。
我能找到的唯一真正的硬文档是库的主页:log.paulbetts.org/fast-http-with-modernhttpclient 我在性能改进方面的经验是轶事,我没有受控测试
Xamarin 周期 8 现在可以选择在 Android 项目中使用“AndroidClientHandler”。
最新信息:blog.xamarin.com/securing-web-requests-with-tls-1-2。请注意 Android 部分,它以编程方式显示如何让项目默认实现被使用(可能是也可能不是 TLS 1.2,具体取决于您的设置)或 Louis 提到的较新的 AndroidClientHandler。以上是关于Xam 表单中的 ModernHttpClient。在最新版本中是不是有必要?的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms 中用于 .Net Standard 2.0 的 ModernHttpClient
ProGuard:“java.exe”在添加 ModernHTTPClient 后以代码 1 退出
C#:ModernHttpClient,您在您的应用程序中引用便携式版本 - 您需要引用平台(iOS/Android)版本