ちょいハマったのでメモ。
SamplePost.cs
using System.Collections;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
public class SamplePost : MonoBehaviour
{
void Start()
{
StartCoroutine(Post("http://localhost:4567", "{'nickname':'hoge'}"));
}
IEnumerator Post(string url, string bodyJsonString)
{
var request = new UnityWebRequest(url, "POST");
byte[] bodyRaw = Encoding.UTF8.GetBytes(bodyJsonString);
request.uploadHandler = (UploadHandler) new UploadHandlerRaw(bodyRaw);
request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.Send();
Debug.Log("Status Code: " + request.responseCode);
}
}
UnityWebRequest.Post()
のショートカットはフォームデータのポストしか対応してないので自分でnewする必要がある。
SetRequestHeader
で Content-Type
を設定すればjsonのpostになる。