unity post 请求

该文章介绍了在Unity3D中如何使用UnityWebRequest进行POST请求,包括设置请求头、发送JSON数据以及处理响应。示例代码展示了一个带有错误检查的协程函数,用于发送JSON数据,并提供了不同类型的POST请求方法。

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

unity post 请求,小记

请求的协程

如下,直接复制即可,注释已经很详细了,就不细嗦了

   /// <summary>
    /// post请求 
    /// </summary>
    /// <param name="url"> 请求的url </param>   
    /// <param name="json"> 传输的数据 </param>
    /// <returns></returns>
public IEnumerator PostJsonData(string url, string json)
    {

        // 创建一个UnityWebRequest对象
        UnityWebRequest www = UnityWebRequest.Post(url, json);
        // 设置数据的类型,不写的话会被转换成乱码
        www.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(json));

        // 设置请求头的Content-Type为application/json
        www.SetRequestHeader("Content-Type", "application/json");

        // 发送请求
        yield return www.SendWebRequest();

        // 检查请求是否出错
        if (www.isNetworkError || www.isHttpError)
        {
            // 请求出错
            Debug.Log("Error: " + www.error);
        }
        else
        {
            // 请求成功,处理返回的数据
            Debug.Log(www.downloadHandler.text);
        }
    }

请求的类型

如下图,类型自己选择,根据各自的项目为准

    
        public static UnityWebRequest Post(string uri, string postData);
        public static UnityWebRequest Post(Uri uri, Dictionary<string, string> formFields);
        public static UnityWebRequest Post(string uri, Dictionary<string, string> formFields);
        public static UnityWebRequest Post(Uri uri, List<IMultipartFormSection> multipartFormSections, byte[] boundary);
        public static UnityWebRequest Post(string uri, List<IMultipartFormSection> multipartFormSections, byte[] boundary);
        public static UnityWebRequest Post(Uri uri, List<IMultipartFormSection> multipartFormSections);
        public static UnityWebRequest Post(string uri, List<IMultipartFormSection> multipartFormSections);
        public static UnityWebRequest Post(Uri uri, WWWForm formData);
        public static UnityWebRequest Post(string uri, WWWForm formData);

调用

先定义一个数据类型,根据自己的项目自己更改

public class userBase
{
    public string account;
    public string password;

}

然后就是赋值调用

  public void Login()
    {

        userBase msg = new userBase();
        msg.account = accountInput.text;
        msg.password = passwordInput.text;
        // 将对象转换为JSON字符串 
        string jsonData = JsonUtility.ToJson(msg);
        // 协程调用
        StartCoroutine(PostJsonData("", jsonData));

    }

完结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值