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));
}