在Unity上使用.NET自己的httpClient类

我正在尝试从Unity执行HTTP删除请求,并试图使用.Net的System.Web命名空间中包含的HttpRequest类。

我怎样才能实现这一点,我认为必须对某个命名空间进行某种导入,但是如何实现呢?

希望有人可以给我一些指导

HttpClient仅适用于4.5 NET及以上版本,Unity不使用该版本。 Unity使用大约3.5 .NET版本。

如果您使用的是Unity 5.3, UnityWebRequest.Delete可以使用UnityWebRequest.Delete发出删除请求。 它可以在Experimental.Networking命名空间中找到。 如果您使用的是Unity 5.4及更高版本,可以在UnityEngine.Networking;找到UnityEngine.Networking; 命名空间。

完整的工作示例:

 IEnumerator makeRequest(string url) { UnityWebRequest delReq = UnityWebRequest.Delete(url); yield return delReq.Send(); if (delReq.isError) { Debug.Log("Error: " + delReq.error); } else { Debug.Log("Received " + delReq.downloadHandler.text); } } 

用法

StartCoroutine(makeRequest("http://www.example.com/whatever"));

确保包含using UnityEngine.Networking 。 你可以在这里找到完整的例子。


编辑(更新)

Unity现在支持.NET 4.5,因此如果您愿意,现在可以使用HttpClient。 有关如何启用它,请参阅此文章。

启用它后,转到我的计算机上的\Editor\Data\MonoBleedingEdge\lib\mono\4.5或例如C:\Program Files\Unity\Editor\Data\MonoBleedingEdge\lib\mono\4.5

进入此目录后,将System.Net.Http.dll复制到\Assets目录,并且在导入System.Net.Http命名空间后应该能够使用HttpClient 。 如果还有一些关于缺少依赖项的错误,您也可以从此路径获取dll并将它们复制到\Assets目录中。