Unity で C# を使用して HTTP リクエストを送信します
Unity 開発では、HTTP リクエストの送信は、ネットワーク サービスとやり取りしてデータを送信するために重要です。この記事では、Unity の C# で GET リクエストと POST リクエストを送信する方法を包括的に説明します。
Unity での GET リクエスト
GET リクエストを実行するには、UnityWebRequest.Get を使用できます。コードは次のとおりです:
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); } }
フォームデータを含む POST リクエスト
フォームデータの投稿にはWWWFormを使用します。
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); } }
JSON データを含む POST リクエスト
JSON データを含む POST リクエストを送信するには:
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); } }
PUT リクエストと DELETE リクエスト
次のように UnityWebRequest を使用して PUT リクエストと DELETE リクエストを実行することもできます。
PUT リクエスト
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); } }
削除リクエスト
IEnumerator deleteRequest(string url) { UnityWebRequest uwr = UnityWebRequest.Delete(url); yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.Log("发送错误: " + uwr.error); } else { Debug.Log("已删除"); } }
これらのコード スニペットは、Unity で HTTP リクエストを非同期に送信し、応答を効率的に処理する方法を示しています。 Unity のコルーチン システムを活用して、メインスレッドのブロックを防ぎ、スムーズなゲーム パフォーマンスを確保します。
以上がC# を使用して Unity で HTTP GET、POST、PUT、および DELETE リクエストを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。