HTTP-Anfragen in Unity mit C# senden
Unity bietet anpassbare Netzwerkfunktionen, die es Entwicklern ermöglichen, Daten effizient über das Internet auszutauschen. Dieses Handbuch bietet einen umfassenden Überblick über das Senden von HTTP-Anfragen in Unity mit C# und UnityWebRequest (der aktuellen Netzwerk-API von Unity) und deckt GET- und POST-Vorgänge ab.
GET-Anfrage
GET-Anfrage wird verwendet, um Daten vom Server abzurufen. Um eine GET-Anfrage mit UnityWebRequest zu senden, verwenden Sie den folgenden Code:
<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
POST-Anfrage wird verwendet, um Daten an den Server zu senden. Sie können Formulardaten und JSON-Daten senden.
POST-Anfrage mit Formulardaten
<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>
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>
POST-Anfrage mit mehrteiligen Formulardaten/mehrteiliger Formulardatei
<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-Anfrage
<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>
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>
Das obige ist der detaillierte Inhalt vonWie sende 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!