自分用めも

初心者ちっくなプログラムネタを中心に、自分用の覚え書きをメモっていくための場所です。

Unityでhttp get/post処理

Unity 5.3.0f4 (64-bit)。
AndroidWebGLで出力したいと思っています。


getの場合

WWWクラスを使う (UnityEngine)
http://docs.unity3d.com/ja/current/ScriptReference/WWW.html

これはものすごく簡単でした。
非同期なのでUpdateで終わったかどうか見てますが、多分コールバック(デリゲート)が使えるのかな。

using UnityEngine;
using System;

public class Test : MonoBehaviour
{
    private WWW www;
    private bool isDone = true;
    private string Url = "http://hoge.com/?fuga=1";

    public void Request()
    {
        www = new WWW(Url);
        isDone = false;
    }

    void Update()
    {
        // 応答が返ってきたら
        if (isDone == false && www.isDone)
        {
            // 中身を取る
            Debug.Log(www.text);
            isDone = true;
        }
    }
}

postの場合

WWWFormクラスを使う (UnityEngine)
http://docs.unity3d.com/ja/current/ScriptReference/WWWForm.html

こっちもシンプルですね。
WWWFormのインスタンスをWWWの引数に加えるだけです。

using UnityEngine;
using System;

public class Test : MonoBehaviour
{
    private WWW www;
    private bool isDone = true;
    private string Url = "http://hoge.com/";

    public void Request()
    {
        WWWForm form = new WWWForm();
        form.AddField("fuga", "1");

        www = new WWW(Url, form);
        if (!String.IsNullOrEmpty(www.error))
        {
            print(www.error);
        }

        isDone = false;
    }

    void Update()
    {
        // 応答が返ってきたら
        if (isDone == false && www.isDone)
        {
            // 中身を取る
            Debug.Log(www.text);
            isDone = true;
        }
    }
}