HTTP-Anfrage mit C# in Unity senden
In der Unity-Entwicklung ist das Senden von HTTP-Anfragen für die Interaktion mit Netzwerkdiensten und die Übertragung von Daten von entscheidender Bedeutung. In diesem Artikel erfahren Sie umfassend, wie Sie GET- und POST-Anfragen in C# von Unity senden.
GET-Anfrage in Unity
Um eine GET-Anfrage durchzuführen, können Sie UnityWebRequest.Get verwenden. Der Code lautet wie folgt:
<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-Anfrage mit Formulardaten
Um Formulardaten zu veröffentlichen, verwenden Sie 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>
POST-Anfrage mit JSON-Daten
So senden Sie eine POST-Anfrage mit JSON-Daten:
<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>
PUT- und DELETE-Anfragen
Sie können UnityWebRequest auch verwenden, um PUT- und DELETE-Anfragen wie folgt auszuführen:
PUT-Anfrage
<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>
Anfrage LÖSCHEN
<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>
Diese Codeausschnitte zeigen, wie man HTTP-Anfragen in Unity asynchron sendet und Antworten effizient verarbeitet. Nutzen Sie das Coroutine-System von Unity, um ein Blockieren des Hauptthreads zu verhindern und eine reibungslose Spielleistung sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie stelle ich HTTP-GET-, POST-, PUT- und DELETE-Anfragen in Unity mit C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!