首頁 > 後端開發 > C++ > 如何使用 C# 在 Unity 中發出 HTTP GET、POST、PUT 和 DELETE 請求?

如何使用 C# 在 Unity 中發出 HTTP GET、POST、PUT 和 DELETE 請求?

Susan Sarandon
發布: 2025-01-19 21:01:12
原創
817 人瀏覽過

How to Make HTTP GET, POST, PUT, and DELETE Requests in Unity using C#?

在Unity中使用C#發送HTTP請求

Unity開發中,發送HTTP請求對於與網路服務互動和傳輸資料至關重要。本文將全面指導您如何在Unity的C#中發送GET和POST請求。

Unity中的GET請求

要執行GET請求,您可以使用UnityWebRequest.Get。程式碼如下:

<code class="language-csharp">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);
    }
}</code>
登入後複製

包含表單資料的POST請求

對於發佈表單數據,請使用WWWForm。

<code class="language-csharp">IEnumerator postRequest(string url)
{
    WWWForm form = new WWWForm();
    form.AddField("myField", "myData");
    form.AddField("游戏名称", "马里奥赛车");

    UnityWebRequest uwr = UnityWebRequest.Post(url, form);
    yield return uwr.SendWebRequest();

    if (uwr.isNetworkError)
    {
        Debug.Log("发送错误: " + uwr.error);
    }
    else
    {
        Debug.Log("接收: " + uwr.downloadHandler.text);
    }
}</code>
登入後複製

包含JSON資料的POST請求

要傳送包含JSON資料的POST請求:

<code class="language-csharp">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);
    }
}</code>
登入後複製

PUT和DELETE請求

您也可以使用UnityWebRequest執行PUT和DELETE請求,如下所示:

PUT請求

<code class="language-csharp">IEnumerator putRequest(string url)
{
    byte[] dataToPut = System.Text.Encoding.UTF8.GetBytes("你好,这是一个测试");
    UnityWebRequest uwr = UnityWebRequest.Put(url, dataToPut);
    yield return uwr.SendWebRequest();

    if (uwr.isNetworkError)
    {
        Debug.Log("发送错误: " + uwr.error);
    }
    else
    {
        Debug.Log("接收: " + uwr.downloadHandler.text);
    }
}</code>
登入後複製

DELETE請求

<code class="language-csharp">IEnumerator deleteRequest(string url)
{
    UnityWebRequest uwr = UnityWebRequest.Delete(url);
    yield return uwr.SendWebRequest();

    if (uwr.isNetworkError)
    {
        Debug.Log("发送错误: " + uwr.error);
    }
    else
    {
        Debug.Log("已删除");
    }
}</code>
登入後複製

這些程式碼片段示範如何在Unity中非同步發送HTTP請求並有效處理回應。利用Unity的協程系統可以防止阻塞主執行緒並確保流暢的遊戲效能。

以上是如何使用 C# 在 Unity 中發出 HTTP GET、POST、PUT 和 DELETE 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板