首先定义委托
public delegate void ajaxBindMethod(string result);
写Ajax
public IEnumerator Ajax(string url, string method, JsonData data, string contentType, ajaxBindMethod success, ajaxBindMethod err)
{
byte[] postBytes = System.Text.Encoding.Default.GetBytes(data.ToJson());
UnityWebRequest webRequest = new UnityWebRequest(url, method);
// webRequest.SetRequestHeader("Content-Type", "application/json");
webRequest.SetRequestHeader("Content-Type", contentType);
webRequest.uploadHandler = (UploadHandler) new UploadHandlerRaw(postBytes);
webRequest.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer();
yield return webRequest.SendWebRequest();
Debug.Log("Status Code: " + webRequest.responseCode);
//异常处理,很多博文用了error!=null这是错误的,请看下文其他属性部分
if (webRequest.isHttpError || webRequest.isNetworkError)
{
Debug.Log(webRequest.error);
err(webRequest.error);
}
else
{
success(webRequest.downloadHandler.text);
}
}
Ajax调用实例
public void login()
{
JsonData data = new JsonData();
data["username"] = StrUsername;
data["password"] = StrPassword;
StartCoroutine(
Ajax("url","POST", data,"application/json",
success =>
{
},
err => { }));
// StartCoroutine(Post());
}
引用到的程序集
using LitJson;
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;