Maison >développement back-end >C++ >Comment créer des requêtes HTTP GET, POST, PUT et DELETE dans Unity à l'aide de C# ?

Comment créer des requêtes HTTP GET, POST, PUT et DELETE dans Unity à l'aide de C# ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-19 21:01:12818parcourir

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

Envoyer une requête HTTP en utilisant C# dans Unity

Dans le développement d'Unity, l'envoi de requêtes HTTP est crucial pour interagir avec les services réseau et transmettre des données. Cet article vous guidera de manière complète sur la façon d'envoyer des requêtes GET et POST dans le C# d'Unity.

Requête GET dans Unity

Pour effectuer une requête GET, vous pouvez utiliser UnityWebRequest.Get. Le code est le suivant :

<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>

Requête POST contenant les données du formulaire

Pour publier des données de formulaire, utilisez 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>

Requête POST contenant des données JSON

Pour envoyer une requête POST contenant des données JSON :

<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>

Requêtes PUT et DELETE

Vous pouvez également utiliser UnityWebRequest pour effectuer des requêtes PUT et DELETE comme suit :

Demande 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>

Demande de SUPPRESSION

<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>

Ces extraits de code montrent comment envoyer des requêtes HTTP de manière asynchrone dans Unity et gérer efficacement les réponses. Tirez parti du système de coroutines d'Unity pour éviter de bloquer le thread principal et garantir des performances de jeu fluides.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn