LoginSignup
1
1

UnityでHTTPのやつにPOSTやGETするメモ

3秒ごと呼び出したら、遅延したので、リアルタイムは弱そう

強くする方法あるのかな??

C# Api.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.VisualScripting;
using UnityEngine.Networking;
using System.Text;
public class Api : MonoBehaviour
{
  public const string API_HOST_URL = "http://127.0.0.1:5500/";
  string sendData = "";
  void Start()
  {
    //StartCoroutine(UploadSend(API_HOST_URL + "", sendData));
    // StartCoroutine(GetRequest(API_HOST_URL + "/?id=100"));
  }

  void Update()
  {

  }

  IEnumerator GetRequest(string uri)
  {
    using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
    {
      // Request and wait for the desired page.
      yield return webRequest.SendWebRequest();
      string[] pages = uri.Split('/');
      int page = pages.Length - 1;
      switch (webRequest.result)
      {
        case UnityWebRequest.Result.ConnectionError:
        case UnityWebRequest.Result.DataProcessingError:
          Debug.LogError(pages[page] + ": Error: " + webRequest.error);
          break;
        case UnityWebRequest.Result.ProtocolError:
          Debug.LogError(pages[page] + ": HTTP Error: " + webRequest.error);
          break;
        case UnityWebRequest.Result.Success:
          Debug.Log(pages[page] + ":\nReceived: " + webRequest.downloadHandler.text);
          break;
      }
    }
  }

  IEnumerator UploadSend(string uri, string sendData)
  {
    var url = uri;
    // var json = JsonUtility.ToJson(sendData);
    var postData = Encoding.UTF8.GetBytes(sendData);
    using var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST)
    {
      uploadHandler = new UploadHandlerRaw(postData),
      downloadHandler = new DownloadHandlerBuffer()
    };
    request.SetRequestHeader("Content-Type", "text/plain");
    yield return request.SendWebRequest();
    // operation.completed += _ =>
    // {
    //   Debug.Log(operation.isDone);
    //   Debug.Log(operation.webRequest.downloadHandler.text);
    //   Debug.Log(operation.webRequest.isHttpError);
    //   Debug.Log(operation.webRequest.isNetworkError);
    // };
  }
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1