Unity和后端对接数据

  • 项目开发中有时候需要Get请求来获取一些数据
    代码如下
    区分测试环境正式环境

Get类型直接请求

Get类型
 public static UnityWebRequest GetImageUrl(int id)
    {
    
    
        string url = "https://" + usNetworkConfig.IP + "url?id=" + id;
        var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET);
        request.downloadHandler = new DownloadHandlerBuffer();
        request.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
        request.SetRequestHeader("User-Token",token);
        return request;
    }
    获取当前时间
    /// <summary>
    /// 获取当前时间
    /// </summary>
    /// <returns></returns>
    static public string GetTimeName()
    {
    
    
        return System.DateTime.Now.Year.ToString() + "/" + System.DateTime.Now.Month.ToString() + "/" +
            System.DateTime.Now.Day.ToString() + " " + System.DateTime.Now.Hour.ToString() + ":" +
            System.DateTime.Now.Minute.ToString() + ":" + System.DateTime.Now.Second.ToString() + "\n";
    }
    外部调用
     private IEnumerator RequestUrl(int id)
    {
    
    
        var request = usTaskCloudWebRequest.GetImageUrl(id);
        if (request != null)
        {
    
    
            request.timeout = 5;
            
            yield return request.SendWebRequest();
            Debug.Log(request.responseCode);
            if (request.responseCode == 200)
            {
    
    
                Debug.Log(request.downloadHandler.text);

                var result = ResultUtiBean.CreateResultUtiBean(request.downloadHandler.text);
                Debug.Log(result.code);
                if (result.code.Equals("SUCCESS"))
                {
    
    
                    Debug.Log(usCloudWebRequest.GetTimeName() + "查询成功!");

                }
                else
                {
    
    
                    Debug.Log(usCloudWebRequest.GetTimeName() + "查询失败!");
                }
            }
            else
            {
    
    
                Debug.Log(usCloudWebRequest.GetTimeName() + "无法访问服务器,请检查网络连接!");
            }
        }
    }

Post传递参数

  public static UnityWebRequest GetTaskList(int tasksType, string tasksName)
    {
    
    
        string url = "https://" + usNetworkConfig.IP + "接口";
        Debug.Log(url);
        var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST);
        request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
        request.SetRequestHeader("User-Token",token);
        JsonData data = new JsonData();
        data["tasksType"] = tasksType;
        data["tasksName"] = tasksName;
        byte[] postBytes = System.Text.Encoding.Default.GetBytes(data.ToJson());
        request.uploadHandler = (UploadHandler)new UploadHandlerRaw(postBytes);
        var downloadHandler = new DownloadHandlerBuffer();
        request.downloadHandler = downloadHandler;
        return request;

    }```
```csharp
 private IEnumerator RequestEnvironment(string m_code)
    {
    
    
        
        // 这里的地方填的是服务器的IP地址+服务器端口号
        string _url = "url" + m_code;
        UnityWebRequest request = UnityWebRequest.Get(_url);
        yield return request.SendWebRequest();
        if (request.isNetworkError || request.isNetworkError)
        {
    
    
            Debug.Log(request.error);
        }
        else
        {
    
    
            Debug.Log(request.downloadHandler.text); //返回的数据解析即可
            DevesData root = JsonMapper.ToObject<DevesData>(request.downloadHandler.text);
        }
    }```

 

猜你喜欢

转载自blog.csdn.net/weixin_42430280/article/details/127447089