使用C#在Unity中發送HTTP請求
Unity 提供了可定制的網絡功能,允許開發者高效地通過互聯網交換數據。本指南將全面概述如何在Unity中使用C#和UnityWebRequest(Unity當前的網絡API)發送HTTP請求,涵蓋GET和POST操作。
GET請求
GET請求用於從服務器檢索數據。要使用UnityWebRequest發送GET請求,請使用以下代碼:
IEnumerator GetRequest(string uri)
{
UnityWebRequest uwr = UnityWebRequest.Get(uri);
yield return uwr.SendWebRequest();
if (uwr.isNetworkError)
{
Debug.Log("发送错误: " uwr.error);
}
else
{
Debug.Log("接收: " uwr.downloadHandler.text);
}
}
POST請求
POST請求用於向服務器發送數據。您可以發送表單數據和JSON數據。
使用表單數據的POST請求
IEnumerator PostRequest(string url)
{
WWWForm form = new WWWForm();
form.AddField("myField", "myData");
form.AddField("Game Name", "Mario Kart");
UnityWebRequest uwr = UnityWebRequest.Post(url, form);
yield return uwr.SendWebRequest();
if (uwr.isNetworkError)
{
Debug.Log("发送错误: " uwr.error);
}
else
{
Debug.Log("接收: " uwr.downloadHandler.text);
}
}
使用JSON數據的POST請求
IEnumerator PostRequest(string url, string json)
{
var uwr = new UnityWebRequest(url, "POST");
byte[] jsonToSend = new System.Text.UTF8Encoding().GetBytes(json);
uwr.uploadHandler = (UploadHandler)new UploadHandlerRaw(jsonToSend);
uwr.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
uwr.SetRequestHeader("Content-Type", "application/json");
yield return uwr.SendWebRequest();
if (uwr.isNetworkError)
{
Debug.Log("发送错误: " uwr.error);
}
else
{
Debug.Log("接收: " uwr.downloadHandler.text);
}
}
使用多部分錶單數據/多部分錶單文件的POST請求
IEnumerator PostRequest(string url)
{
List formData = new List();
formData.Add(new MultipartFormDataSection("field1=foo&field2=bar"));
formData.Add(new MultipartFormFileSection("my file data", "myfile.txt"));
UnityWebRequest uwr = UnityWebRequest.Post(url, formData);
yield return uwr.SendWebRequest();
if (uwr.isNetworkError)
{
Debug.Log("发送错误: " uwr.error);
}
else
{
Debug.Log("接收: " uwr.downloadHandler.text);
}
}
PUT請求
IEnumerator PutRequest(string url)
{
byte[] dataToPut = System.Text.Encoding.UTF8.GetBytes("Hello, This is a test");
UnityWebRequest uwr = UnityWebRequest.Put(url, dataToPut);
yield return uwr.SendWebRequest();
if (uwr.isNetworkError)
{
Debug.Log("发送错误: " uwr.error);
}
else
{
Debug.Log("接收: " uwr.downloadHandler.text);
}
}
DELETE請求
IEnumerator DeleteRequest(string url)
{
UnityWebRequest uwr = UnityWebRequest.Delete(url);
yield return uwr.SendWebRequest();
if (uwr.isNetworkError)
{
Debug.Log("发送错误: " uwr.error);
}
else
{
Debug.Log("已删除");
}
}
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3