使用C#在Unity中發送HTTP請求
Unity 提供了可自訂的網路功能,讓開發者有效率地透過網際網路交換資料。本指南將全面概述如何在Unity中使用C#和UnityWebRequest(Unity目前的網路API)發送HTTP請求,涵蓋GET和POST操作。
GET請求
GET請求用於從伺服器檢索資料。若要使用UnityWebRequest發送GET請求,請使用下列程式碼:
<code class="language-csharp">IEnumerator GetRequest(string uri) { UnityWebRequest uwr = UnityWebRequest.Get(uri); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("接收: " + uwr.downloadHandler.text); } }</code>
POST請求
POST請求用於向伺服器發送資料。您可以傳送表單資料和JSON資料。
使用表單資料的POST請求
<code class="language-csharp">IEnumerator PostRequest(string url) { WWWForm form = new WWWForm(); form.AddField("myField", "myData"); form.AddField("Game Name", "Mario Kart"); UnityWebRequest uwr = UnityWebRequest.Post(url, form); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("接收: " + uwr.downloadHandler.text); } }</code>
使用JSON資料的POST請求
<code class="language-csharp">IEnumerator PostRequest(string url, string json) { var uwr = new UnityWebRequest(url, "POST"); byte[] jsonToSend = new System.Text.UTF8Encoding().GetBytes(json); uwr.uploadHandler = (UploadHandler)new UploadHandlerRaw(jsonToSend); uwr.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer(); uwr.SetRequestHeader("Content-Type", "application/json"); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("接收: " + uwr.downloadHandler.text); } }</code>
使用多部分錶單資料/多部分錶單文件的POST請求
<code class="language-csharp">IEnumerator PostRequest(string url) { List<IMultipartFormSection> formData = new List<IMultipartFormSection>(); formData.Add(new MultipartFormDataSection("field1=foo&field2=bar")); formData.Add(new MultipartFormFileSection("my file data", "myfile.txt")); UnityWebRequest uwr = UnityWebRequest.Post(url, formData); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("接收: " + uwr.downloadHandler.text); } }</code>
PUT請求
<code class="language-csharp">IEnumerator PutRequest(string url) { byte[] dataToPut = System.Text.Encoding.UTF8.GetBytes("Hello, This is a test"); UnityWebRequest uwr = UnityWebRequest.Put(url, dataToPut); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("接收: " + uwr.downloadHandler.text); } }</code>
DELETE請求
<code class="language-csharp">IEnumerator DeleteRequest(string url) { UnityWebRequest uwr = UnityWebRequest.Delete(url); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("已删除"); } }</code>
以上是如何使用 C# 在 Unity 中傳送 HTTP GET、POST、PUT 和 DELETE 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!