unity如何Get和Post

文章介绍了如何使用UnityWebRequest在C#中实现HTTPGET和POST请求,包括设置请求头、发送请求以及处理网络和HTTP错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    IEnumerator Get(string url)
    {
        UnityWebRequest req = UnityWebRequest.Get(url);
        req.SetRequestHeader("Content-Type", "application/json");
        req.SetRequestHeader("Accept", "application/json");
        yield return req.SendWebRequest();
        if (req.isHttpError || req.isNetworkError)
        {
            Debug.Log(req.error);
        }
        else
        {
            Debug.Log(req.downloadHandler.text);

        }
    }

IEnumerator Post(string url, string jsonStr)
    {
        byte[] bytes = Encoding.UTF8.GetBytes(jsonStr);
        UnityWebRequest request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST)
        {
            uploadHandler = new UploadHandlerRaw(bytes),
            downloadHandler = new DownloadHandlerBuffer()
        };
        request.SetRequestHeader("Content-Type", "application/json");
        request.SetRequestHeader("Accept", "application/json");
        yield return request.SendWebRequest();
        if (request.isHttpError || request.isNetworkError)
        {
            Debug.LogError(request.error);
        }
        else
        {
 
            Debug.Log(request.downloadHandler.text);
        }
    }

Unity本身不是一个Web服务框架,但它可以与WebSocket通信,特别是在游戏中实现服务器推送或者玩家间实时通讯。WebSocket是一种在单个TCP连接上进行全双工通信的协议,允许客户端服务器之间进行持续性的数据交换。 如果你想在Unity中通过WebSocket做GETPOST请求,通常你会使用第三方库,比如`畅言的Unity WebSocket API`或者`ThirdPartyWebSocket`。以下是简单的步骤: 1. **安装库**:从NuGet或GitHub上下载并安装适合Unity的WebSocket库。 2. **初始化连接**:创建WebSocket对象,并设置URL、回调函数等配置。 ```csharp using UnityEngine; using System.Collections.Generic; using ThirdPartyWebSocket; public class WebSocketManager : MonoBehaviour { private WebSocket webSocket; void Start() { webSocket = new WebSocket("wss://your-websocket-url"); webSocket.OnMessage += OnMessageReceived; webSocket.Connect(); } // Handle GET or POST request private void SendRequest(string path, string method = "GET", Dictionary<string, string> headers = null) { if (method == "GET") webSocket.Send(path); else if (method == "POST") webSocket.SendJson(path, headers); // Assuming the library has a SendJson method that handles JSON data } private void OnMessageReceived(WebSocket webSocket, string message) { // Process server response here } } ``` 3. **发送请求**:在需要的时候调用`SendRequest`方法,传入路径HTTP方法(GETPOST),以及可选的额外头信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值