日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网页信息上传服务器,Unity 连接网页服务器 获取数据上传数据

發(fā)布時(shí)間:2025/3/8 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网页信息上传服务器,Unity 连接网页服务器 获取数据上传数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

usingLitJson;usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Net;usingSystem.Net.Http;usingSystem.Text;usingUnityEngine;usingUnityEngine.Networking;usingUnityEngine.UI;//請(qǐng)求連接//數(shù)據(jù)類型

public classConserver

{public int recordType; //類型

public string studentIdx; //學(xué)號(hào)

public string courseName; //課程名稱

public string taskName; //任務(wù)名稱

public int loginTimes; //登錄次數(shù)

public int onlineDur; //在線時(shí)長(zhǎng)

public byte finishRate; //學(xué)習(xí)完成率

public byte score; //分?jǐn)?shù)

public Conserver(int recordType, string studentIdx,string courseName,string taskName,int loginTimes, intonlineDur,byte finishRate, bytescore)

{this.recordType =recordType;this.studentIdx =studentIdx;this.courseName =courseName;this.taskName =taskName;this.loginTimes =loginTimes;this.onlineDur =onlineDur;this.finishRate =finishRate;this.score =score;

}

}//解析json類//定義的類型一定要跟接收到的數(shù)據(jù)類型保持一致,否則會(huì)一直出不來

public classmodelTest

{public intresult;publicData data;

}public classData

{publicExamsk[]exams;public int total; //個(gè)數(shù)

}public classExamsk

{public string className; //班級(jí)

public string courseName; //課程

public string endTime; //結(jié)束時(shí)間

public int id; //id

public string name; //考試名稱

public string startTime; //開始時(shí)間

public int taskIndex; //任務(wù)id

}public classConnect_Server : MonoBehaviour

{public string idd; //保存的token值

publicInputField field_xuehao;publicInputField field_mima;publicInputField field_kecheng;publicButton btn_login;

[NonSerialized]public int type; //什么類型 0學(xué)習(xí) 1 訓(xùn)練 2 考試

[NonSerialized]public string ipp; //IP地址

public GameObject ipObject; //IP地址界面

publicInputField field_ip;publicButton btn_jinru;public staticConnect_Server instance;publicGameObject tanchaungObj;public List listkeceng = new List(); //課程

public List listname = new List(); //考核名稱

public List listTaskIndex = new List(); //任務(wù)幾

public static int numberTask; //任務(wù)個(gè)數(shù)

public intRW;public stringkechengmingcheng;//清空列表

public voidClear_List()

{

listkeceng.Clear();

listname.Clear();

listTaskIndex.Clear();

}public voidBaoCunIpp()

{

PlayerPrefs.SetString("IPIP", field_ip.text);

}private voidAwake()

{

instance= this;if (PlayerPrefs.GetString("IPIP")!=null)

{

field_ip.text= PlayerPrefs.GetString("IPIP");

}else{

}

}private voidStart()

{//登錄按鈕

btn_login.onClick.AddListener(delegate{if (field_xuehao.text !=""&& field_mima.text !="")

{

StartCoroutine(GetAccessToken(field_xuehao.text, field_mima.text));

}

});

btn_jinru.onClick.AddListener(delegate{if (field_ip.text !="")

{

ipp=field_ip.text;

ipObject.SetActive(false);

BaoCunIpp();

}

});

}//上傳數(shù)據(jù)

public void Upload_Data(int type,string xuehao,string kecheng,string renwu,int cishu,byte wancenglv,bytesoce)

{

sendMessage(new Conserver(type, xuehao, kecheng, renwu, cishu, (int)Time.realtimeSinceStartup, wancenglv, soce));

}//上傳學(xué)習(xí)完成率數(shù)據(jù)//調(diào)用 Connect_Server.instance.UpLoad_Dataxuexi();

public voidUpLoad_Dataxuexi()

{

Connect_Server.instance.Upload_Data(Connect_Server.instance.type, Connect_Server.instance.field_xuehao.text,

Connect_Server.instance.listkeceng[0], "考試", 1, 100, 0);

Connect_Server.instance.Clear_List();

}public voidUpdate()

{if(Input.GetKeyDown (KeyCode.Space ))

{//Connect_Server.instance.Get_BicAuth();//GetPage();

}

}//post 請(qǐng)求賬號(hào)密碼 獲取token值 ,保存使用

IEnumerator GetAccessToken(string xuehao,stringmima)

{string url = "http://"+ipp+":8080/auth/login/student";//Debug.Log(url);

WWWForm form = newWWWForm();

form.AddField("studentIdx", xuehao);

form.AddField("password", mima);//string form = Convert.ToBase64String(Encoding.Default.GetBytes("20210101:123456"));

UnityWebRequest www =UnityWebRequest.Post(url, form);yield returnwww.SendWebRequest();if (www.isNetworkError ||www.isHttpError)

{

Debug.Log(www.error);

}else{//Debug.Log("Form upload complete!");

JsonData json =JsonMapper.ToObject(www.downloadHandler.text);

Debug.Log(www.downloadHandler.text);//獲取服務(wù)器返回的數(shù)據(jù) 解析判斷

if (json["result"].ToString()!="0")

{

field_xuehao.text= "";

field_mima.text= "";

field_kecheng.text= "";

tanchaungObj.SetActive(true);

}else{//Debug.Log(www.downloadHandler.text);//idd就是解析出來的token值

idd = json["data"]["token"].ToString();//Debug.Log(idd);

GameManager.instance.login_obj.SetActive(false);

}

}

}public voidGuanBITanChuang()

{

tanchaungObj.SetActive(false);

}//直接get請(qǐng)求

public voidGet_BicAuth()

{string url = "http://"+ipp+":8080/exam?page=1&limit=10";using (var httpClient = newHttpClient())

{var response =httpClient.GetAsync(url).Result;var data =response.Content.ReadAsStringAsync().Result;

Debug.Log(data);

}

}//GET請(qǐng)求服務(wù)器 帶Bearer認(rèn)證 還有token令牌

public voidGetPage()

{

HttpWebRequest request= null;string requestUrl = "http://" + ipp + ":8080/exam?page=1&limit=10";//準(zhǔn)備請(qǐng)求...

try{//設(shè)置參數(shù)

CookieContainer objCookieContainer = null;

request=(HttpWebRequest)WebRequest.Create(requestUrl);

CookieContainer cookieContainer= newCookieContainer();

request.CookieContainer=cookieContainer;

request.AllowAutoRedirect= true;

request.Method= "GET"; //請(qǐng)求方式GET或POST//數(shù)據(jù)格式是JSON

request.ContentType = "application/json";//認(rèn)證方式 bearer idd 是令牌 token值

request.Headers.Add("Authorization", "Bearer" +idd);string strResponse = "";using (HttpWebResponse res =(HttpWebResponse)request.GetResponse())

{

objCookieContainer=request.CookieContainer;using (Stream resStream =res.GetResponseStream())

{using (StreamReader srs = new StreamReader(resStream, Encoding.UTF8))//.UTF8))

{

strResponse=srs.ReadToEnd();

Debug.Log(strResponse);

modelTest obj= JsonMapper.ToObject(strResponse);

numberTask=obj.data.total;for (int i = 0; i < obj.data.total; i++)

{//保存從服務(wù)器獲取的數(shù)據(jù),等會(huì)顯現(xiàn)出來

listname.Add(obj.data.exams[i].name.ToString());

listkeceng.Add(obj.data.exams[i].courseName.ToString());

listTaskIndex.Add(obj.data.exams[i].taskIndex);

}

}

}

}

}catch(Exception e)

{

Debug.Log(e);

}

}//帶HTTP安全協(xié)議 Bearer驗(yàn)證的post請(qǐng)求方法 上傳數(shù)據(jù)

public stringsendMessage( Conserver student)

{string strUrl = "http://"+ipp+":8080/record";try{

CookieContainer objCookieContainer= null;

HttpWebRequest request=(HttpWebRequest)WebRequest.Create(strUrl);

request.Method= "Post";

request.ContentType= "application/json";//設(shè)置Http Bearer認(rèn)證的請(qǐng)求頭

request.Headers.Add("Authorization", "Bearer" +idd);

request.Referer=strUrl;

Debug.Log(strUrl);if (objCookieContainer == null)

objCookieContainer= newCookieContainer();

request.CookieContainer=objCookieContainer;

Debug.Log(objCookieContainer.ToString());//傳輸參數(shù)格式轉(zhuǎn)換

var data =JsonUtility.ToJson(student);//request.ContentLength = Encoding.UTF8.GetByteCount(data);

byte[] byteData =Encoding.UTF8.GetBytes(data);

request.ContentLength=byteData.Length;using (Stream reqStream =request.GetRequestStream())

{

reqStream.Write(byteData,0, byteData.Length);//reqStream.Close();

}string strResponse = "";using (HttpWebResponse res =(HttpWebResponse)request.GetResponse())

{

objCookieContainer=request.CookieContainer;using (Stream resStream =res.GetResponseStream())

{using (StreamReader sr = new StreamReader(resStream, Encoding.UTF8))//.UTF8))

{

strResponse=sr.ReadToEnd();

Debug.Log(strResponse);

}

}//res.Close();

}returnstrResponse;

}catch(Exception e)

{

Debug.Log(e);

}return null;

}

}

總結(jié)

以上是生活随笔為你收集整理的网页信息上传服务器,Unity 连接网页服务器 获取数据上传数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。