untiy的http请求
生活随笔
收集整理的這篇文章主要介紹了
untiy的http请求
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我使用的Unity版本為2019.4LTS
當我們與服務器進行通信時,最常用的方式是http請求,在此整理一下相關用法
常用的請求有兩種Get請求和Post請求,Get請求將參數放在url里,而非表單里,其余和Post相同
因此以Post為例
一個標準的Post請求樣例
//請求的urlprivate string uploadPictureUrl = "http://192.168.1.36:9999/admin/base/upload";//上傳的協程private IEnumerator UpLoadIE(){//以上傳json為例string json = "{\"uid\":" + uid + ",\"ChannelName\":\"" + channel + "\",\"role\":" + uid + "}";//將請求字段添加進表單,Get請求不需要表單WWWForm jsonForm = new WWWForm();jsonForm.AddField("id", "1");jsonForm.AddField("user_json", json );//聲明一個請求,.Post就是Post請求 .Get就是Get請求 此處Post請求的參數為 url和表單using (UnityWebRequest webRequest = UnityWebRequest.Post(upLoadJsonUrl, jsonForm)){//發送請求yield return webRequest.SendWebRequest();//處理錯誤信息if (webRequest.isHttpError || webRequest.isNetworkError){print(webRequest.error);}else{//如果沒有錯,處理服務器返回的信息;string code = webRequest.downloadHandler.text;print("json上傳完成,返回值:" + code);}}}如果我們需要上傳圖片等需要轉為字節數組的內容,可以在表單中添加
WWWForm form = new WWWForm();form.AddField("id", "1");byte[] buff = texture2D.EncodeToJPG();form.AddBinaryData("image", buff, texture2D.name + ".jpg");另一種上傳json的方法為
private IEnumerator GetTokenIE(uint uid,string channel){string json = "{\"uid\":" + uid + ",\"ChannelName\":\"" + channel + "\",\"role\":" + uid + "}";using (UnityWebRequest webRequest = UnityWebRequest.Post(url, UnityWebRequest.kHttpVerbCREATE)){webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");byte[] raw = System.Text.Encoding.UTF8.GetBytes(json);webRequest.uploadHandler = new UploadHandlerRaw(raw);yield return webRequest.SendWebRequest(); if(webRequest.isHttpError || webRequest.isNetworkError){Debug.LogError(webRequest.error);}else{string token = webRequest.downloadHandler.text; } }如果我們需要下載圖片,untiy提供了直接下載圖片的請求方式,不需要我們手動轉換字節數組
string url = "圖片的地址";//將這個地址直接用瀏覽器打開,應該可以直接看到圖片private IEnumerator DownLoadPictureByListIE(List<Picture> pictures){using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(url)){//發送請求yield return request.SendWebRequest();if (request.isDone){if (request.isHttpError || request.isNetworkError){print("error:" + request.error);}else{//處理消息Texture2D texture2D = DownloadHandlerTexture.GetContent(request);}}}}總結
以上是生活随笔為你收集整理的untiy的http请求的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机毕业设计 SSM学校图书借阅管理系
- 下一篇: 学计算机的一定是好男人,心理学:只要满足