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);
// };
}
}