2024/09/17 Updated by

Unity

Web Access


[Up] Japanese English

WWW サーバにアクセスしてデータを取得する例。

Webサーバは、localhost上 tomcat (8080番ポート)上のサーブレット /proj/NetData 「データのupload, download」 を想定している。


表示を少し工夫する

上記のプロジェクトはデータがない時もコンソールに表示するので、動作がわかりにくい。 データを得られた時だけ、コンソールに表示するようにするには WebGet.cs を変更する。
変更した WebGet.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using System;

public class WebGet : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(GetText());
    }

    // Update is called once per frame
    void Update()
    {
        StartCoroutine(GetText());
    }

    IEnumerator GetText()
    {
        UnityWebRequest www = UnityWebRequest.Get("http://localhost:8080/proj/NetData");
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            // get data as a text.
            //Debug.Log(www.downloadHandler.text);
            string s = www.downloadHandler.text;
            string[] words = s.Split(' ');
            int n = Int32.Parse(words[0]);
            if (n != 0) Debug.Log(s);

            //  get as a binary data.
            //byte[] results = www.downloadHandler.data;
        }
    }
}
WebGet2.zip