ホームページ >バックエンド開発 >C++ >C# を使用して Unity で HTTP GET および POST リクエストを行う方法

C# を使用して Unity で HTTP GET および POST リクエストを行う方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-19 21:11:10520ブラウズ

How to Make HTTP GET and POST Requests in Unity using C#?

C# を使用して Unity で HTTP リクエストを行う

Unity でゲームやインタラクティブなアプリケーションを開発する場合、HTTP リクエストを送信する機能は、ユーザー認証、Web サービスからのデータの取得、ゲーム イベントの送信などのタスクにとって重要です。この記事では、質問で指定された要件を満たすために、Unity で C# を使用して HTTP GET および POST リクエストを送信する方法を説明します。

UnityWebRequest: リクエストとレスポンスの処理

UnityWebRequest は、Unity で Web リクエストを作成するための便利で効率的な方法を提供します。コルーチンとマルチスレッドを内部で処理し、非同期リクエストを作成し、UI のフリーズを防ぎます。

GET リクエスト

GET リクエストを送信するには、UnityWebRequest.Get() を呼び出して URI を渡すだけです。応答テキストには、uwr.downloadHandler.text 経由でアクセスできます。

<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 リクエスト

フォーム データを含む POST リクエストを送信するには、WWWForm を使用してフォームを構築し、それを UnityWebRequest.Post() に渡します。

<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>

JSON POST リクエスト

JSON POST リクエストの場合は、生のアップロード ハンドラーを作成し、Content-Type ヘッダーを application/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>

PUT、DELETE、およびマルチパート/フォームデータ

UnityWebRequest は、PUT、DELETE、およびマルチパート/フォームデータリクエストもサポートしています。詳細な例については、提供されているコード スニペットを参照してください。

これらのコード例に従うことで、Unity ゲームまたはアプリケーションで HTTP リクエストを迅速に送信して処理でき、シームレスなデータ交換のための強力なツールが得られます。

以上がC# を使用して Unity で HTTP GET および POST リクエストを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。