HttpClient和Unity的UnityWebRequest/WWW API之间的区别

coa*_*mee 5 .net c# mono unity-game-engine dotnet-httpclient

Unity现在支持.NET 4.5,我可以使用命名空间中的HttpClientSystem.Net.Http.这很好,因为我有现有的客户端库,因此易于重用.

有谁知道使用单声道HttpClientUnity自己的网络之间的内部区别

我担心HttpClient不能针对不同的平台进行优化,因此可能会造成麻烦或变慢.

Pro*_*mer 10

两者之间有很多不同之处.

  • UnityWebRequest不允许你使用更改一些标题.有了HttpClient,您几乎可以更改任何标题.

  • UnityWebRequest使用而不用担心线程或异步的东西.您所做的就是使用协同程序等待请求.整个线程的东西已经在本机上完成了.

  • 某些平台不支持System.Net命名空间中的任何内容.其中之一就是WebGL.这意味着HttpClient当您将平台切换到WebGL时甚至无法编译.UnityWebRequest适用于WebGL.

  • UnityWebRequest由使其更容易在内存中的数据下载和数据转换成统一的资源,例如AudioClip,VideoClip,AssetBundle,Texture2D和更多.有了HttpClient,你将不得不编写大量的代码只是检索这些数据或可能有接受他们只是为了能够将它们转换成统一格式的资源后,光盘上的数据保存.

  • 想用SSL UnityWebRequest吗?祝你好运!您最终只会出现模糊的"未知错误"错误.当您参与SSL时,您 HttpClient可以选择.

对于我刚刚提到的所有内容,您应该将代码移植到使用中,UnityWebRequest除非您正在执行不受支持的操作UnityWebRequest.

  • 实际上,至少从 2018.3.0 开始,您实际上可以为 WebGL 编译 HttpClient,但它仍然不起作用,因为它依赖于 JS 中不可用的线程。 (3认同)