图片转为Base64String
Texture2D temp;
string strbaser64;
//以JPG格式返回数组
byte[] imageTytes = temp.EncodeToJPG();
strbaser64 = Convert.ToBase64String(imageTytes);
转化为json
定义一个类来存放图片的base64类型的字符串,再转换为json
Tempdata temp = new Tempdata();
temp.ImgContent = strbaser64;
string json = JsonMapper.ToJson(temp);
POST发送
IEnumerator UnityWebRequestPost(string url, string json)
{
byte[] postBytes = System.Text.Encoding.Default.GetBytes(json);
UnityWebRequest request = new UnityWebRequest(url, "POST");
request.uploadHandler = (UploadHandler)new UploadHandlerRaw(postBytes);
request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
}
Content-Type最好使用application/json,不要使用默认的,因为base64字符串含有一些特殊字符(例如+ /)在传输过程中可能会变成下划线或者空格,导致数据传输失败,并且Content-Type与后台要对应好。