HttpClient 和 Unity 的区别 UnityWebRequest/WWW API
Difference between HttpClient and Unity's UnityWebRequest/WWW API
Unity 现在支持 .NET 4.5,我可以使用 System.Net.Http
命名空间中的 HttpClient
class。这很好,因为我有现成的客户端库,因此很容易重用。
有谁知道使用 mono HttpClient 和 Unity 自己的网络 之间的内部区别class是吗?
恐怕 HttpClient 没有针对不同的平台进行优化,因此可能会导致问题或变慢。
两者有很多不同。
UnityWebRequest
不允许您使用更改某些 header。使用 HttpClient
,您几乎可以更改任何 header.
UnityWebRequest
的使用无需担心线程或异步内容。你所做的就是使用协程等待请求。整个线程的东西已经在本机端为您完成了。
一些平台不支持 System.Net
命名空间中的任何内容。其中之一是 WebGL
。这意味着当您将平台切换到 WebGL 时 HttpClient
甚至不会编译。 UnityWebRequest
与 WebGL 配合良好。
UnityWebRequest
是为了方便下载内存中的数据,并将数据转换成AudioClip
、VideoClip
、[=20等Unity资源=]、Texture2D
等等。使用 HttpClient
,您将不得不编写大量代码来检索此类数据,或者可能必须在收到数据后将数据保存在光盘上才能将它们转换为 Unity 资源形式。
想在 UnityWebRequest
中使用 SSL?祝你好运!您最终只会遇到模棱两可的 "unknown error" 错误。当 SSL 涉及到您的 HttpClient
是选项。
对于我刚才提到的所有内容,您应该移植您的代码以使用 UnityWebRequest
,除非您正在做一些 UnityWebRequest
不支持的事情。
Unity 现在支持 .NET 4.5,我可以使用 System.Net.Http
命名空间中的 HttpClient
class。这很好,因为我有现成的客户端库,因此很容易重用。
有谁知道使用 mono HttpClient 和 Unity 自己的网络 之间的内部区别class是吗?
恐怕 HttpClient 没有针对不同的平台进行优化,因此可能会导致问题或变慢。
两者有很多不同。
UnityWebRequest
不允许您使用更改某些 header。使用HttpClient
,您几乎可以更改任何 header.UnityWebRequest
的使用无需担心线程或异步内容。你所做的就是使用协程等待请求。整个线程的东西已经在本机端为您完成了。一些平台不支持
System.Net
命名空间中的任何内容。其中之一是WebGL
。这意味着当您将平台切换到 WebGL 时HttpClient
甚至不会编译。UnityWebRequest
与 WebGL 配合良好。UnityWebRequest
是为了方便下载内存中的数据,并将数据转换成AudioClip
、VideoClip
、[=20等Unity资源=]、Texture2D
等等。使用HttpClient
,您将不得不编写大量代码来检索此类数据,或者可能必须在收到数据后将数据保存在光盘上才能将它们转换为 Unity 资源形式。想在
UnityWebRequest
中使用 SSL?祝你好运!您最终只会遇到模棱两可的 "unknown error" 错误。当 SSL 涉及到您的HttpClient
是选项。
对于我刚才提到的所有内容,您应该移植您的代码以使用 UnityWebRequest
,除非您正在做一些 UnityWebRequest
不支持的事情。