Hantar permintaan HTTP menggunakan C# dalam Unity
Dalam pembangunan Unity, menghantar permintaan HTTP adalah penting untuk berinteraksi dengan perkhidmatan rangkaian dan menghantar data. Artikel ini akan membimbing anda secara menyeluruh tentang cara menghantar permintaan GET dan POST dalam C# Unity.
DAPATKAN permintaan dalam Perpaduan
Untuk melaksanakan permintaan GET, anda boleh menggunakan UnityWebRequest.Get. Kodnya adalah seperti berikut:
<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>
Pos permintaan yang mengandungi data borang
Untuk menghantar data borang, gunakan WWWForm.
<code class="language-csharp">IEnumerator postRequest(string url) { WWWForm form = new WWWForm(); form.AddField("myField", "myData"); form.AddField("游戏名称", "马里奥赛车"); UnityWebRequest uwr = UnityWebRequest.Post(url, form); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("接收: " + uwr.downloadHandler.text); } }</code>
Permintaan POST yang mengandungi data JSON
Untuk menghantar permintaan POST yang mengandungi data JSON:
<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>
LETAKKAN dan PADAMKAN permintaan
Anda juga boleh menggunakan UnityWebRequest untuk melaksanakan permintaan PUT dan DELETE seperti berikut:
LETAKKAN permintaan
<code class="language-csharp">IEnumerator putRequest(string url) { byte[] dataToPut = System.Text.Encoding.UTF8.GetBytes("你好,这是一个测试"); UnityWebRequest uwr = UnityWebRequest.Put(url, dataToPut); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("接收: " + uwr.downloadHandler.text); } }</code>
PADAM permintaan
<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>
Coretan kod ini menunjukkan cara menghantar permintaan HTTP secara tidak segerak dalam Unity dan mengendalikan respons dengan cekap. Manfaatkan sistem coroutine Unity untuk mengelakkan sekatan benang utama dan memastikan prestasi permainan lancar.
Atas ialah kandungan terperinci Bagaimana untuk Membuat HTTP GET, POST, PUT, dan DELETE Permintaan dalam Unity menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!