Envoyer une requête HTTP en utilisant C# dans Unity
Dans le développement d'Unity, l'envoi de requêtes HTTP est crucial pour interagir avec les services réseau et transmettre des données. Cet article vous guidera de manière complète sur la façon d'envoyer des requêtes GET et POST dans le C# d'Unity.
Requête GET dans Unity
Pour effectuer une requête GET, vous pouvez utiliser UnityWebRequest.Get. Le code est le suivant :
<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>
Requête POST contenant les données du formulaire
Pour publier des données de formulaire, utilisez 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>
Requête POST contenant des données JSON
Pour envoyer une requête POST contenant des données 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>
Requêtes PUT et DELETE
Vous pouvez également utiliser UnityWebRequest pour effectuer des requêtes PUT et DELETE comme suit :
Demande PUT
<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>
Demande de SUPPRESSION
<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>
Ces extraits de code montrent comment envoyer des requêtes HTTP de manière asynchrone dans Unity et gérer efficacement les réponses. Tirez parti du système de coroutines d'Unity pour éviter de bloquer le thread principal et garantir des performances de jeu fluides.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!