private IEnumerator RequestJSON(string url, ReqCallback callback) { using (UnityWebRequest www = UnityWebRequest.Get(url)) { //Send request yield return(www.SendWebRequest()); //Return result callback(www.isNetworkError, www.isHttpError, www.error, www.downloadHandler.text); } }
private IEnumerator PostRequestUsingJSON(string url, string bodyJsonString, ReqCallback callback) { using (UnityWebRequest www = UnityWebRequest.Post(url, bodyJsonString)) { byte[] bodyRaw = new System.Text.UTF8Encoding().GetBytes(bodyJsonString); www.uploadHandler = new UploadHandlerRaw(bodyRaw); www.SetRequestHeader("Content-Type", "application/json"); yield return(www.SendWebRequest()); callback(www.isNetworkError, www.isHttpError, www.error, www.downloadHandler.text); } }
private IEnumerator PostRequestUsingForm(string url, List <KeyValuePojo> parameters, ReqCallback callback) { WWWForm bodyFormData = new WWWForm(); foreach (KeyValuePojo items in parameters) { bodyFormData.AddField(items.keyId, items.value); } using (UnityWebRequest www = UnityWebRequest.Post(url, bodyFormData)) { yield return(www.SendWebRequest()); callback(www.isNetworkError, www.isHttpError, www.error, www.downloadHandler.text); } }
private IEnumerator RequestGetMethod(string url, List <KeyValuePojo> parameters, ReqCallback callback) { string getParameters = getEncodedParams(parameters); using (UnityWebRequest www = UnityWebRequest.Get(url + getParameters)) { //Send request yield return(www.SendWebRequest()); //Return result callback(www.isNetworkError, www.isHttpError, www.error, www.downloadHandler.text); } }
private void GetNetWorkCall(NetworkCallType callType, string uri, string bodyJsonString, List <KeyValuePojo> parameters, ReqCallback callback) { switch (callType) { case NetworkCallType.GET_METHOD: StartCoroutine(RequestGetMethod(uri, parameters, callback)); break; case NetworkCallType.POST_METHOD_USING_JSONDATA: StartCoroutine(PostRequestUsingJSON(uri, bodyJsonString, callback)); break; case NetworkCallType.POST_METHOD_USING_FORMDATA: StartCoroutine(PostRequestUsingForm(uri, parameters, callback)); break; } }
public void GetNetWorkCall(NetworkCallType callType, string uri, List <KeyValuePojo> parameters, ReqCallback callback) { string bodyJsonString = string.Empty; if (callType == NetworkCallType.POST_METHOD_USING_JSONDATA) { bodyJsonString = getEncodedParams(parameters); } GetNetWorkCall(callType, uri, bodyJsonString, parameters, callback); }
public void GetJsonNetWorkCall(string uri, string bodyJsonString, ReqCallback callback) { GetNetWorkCall(NetworkCallType.POST_METHOD_USING_JSONDATA, uri, bodyJsonString, null, callback); }
public void GetJSON(string uri, ReqCallback callback) { // How to return a string from RequestJSON? StartCoroutine(RequestJSON(uri, callback)); }
public static void SendOtkHttpRequest(string data, string url, ReqCallback succeedCall, ReqCallback failedCall) { Debug.Log("client send http request:" + url); Debug.Log("request data:" + data); var info = new OtkRequestInfo(); info.succeedCallback = succeedCall; info.failedCallback = failedCall; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.Timeout = 30000; req.KeepAlive = false; HttpWebResponse resp = null; byte[] responseContent = null; var worker = new BackgroundWorker(); worker.DoWork += (sender, args) => { var sendData = EncryptMgr.EncodeData(data); req.ContentLength = sendData.Length; Stream writeStream = req.GetRequestStream(); writeStream.Write(sendData, 0, sendData.Length); writeStream.Close(); resp = (HttpWebResponse)req.GetResponse(); MemoryStream ms = new MemoryStream(); using (Stream responseStream = resp.GetResponseStream()) { byte[] buffer = new byte[0x1000]; int bytes; while ((bytes = responseStream.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, bytes); } } responseContent = ms.ToArray(); ms.Close(); resp.Close(); }; worker.RunWorkerCompleted += (sender, e) => { if (e.Error != null) { Debug.Log("error:" + e.Error); // info.result = "{\"Status\":-1}"; // {"Resp":{"RespCode":0,"RespDesc":""},"Content":""} info.result = "{\"Resp\":{\"RespCode\":-1, \"RespCodeStr\":\"-1\", \"RespDesc\":\"网络错误\", \"RespDescCN\":\"网络错误\"}}"; info.succeed = false; ConsumerMgr.getInstance().pushMsg(MsgType.MSG_OTKCLIENT_CALLBACK, info); } else { if (resp.StatusCode == HttpStatusCode.OK) { info.result = EncryptMgr.DecodeData(responseContent); info.succeed = true; info.isLua = false; Debug.Log("resp:" + info.result); ConsumerMgr.getInstance().pushMsg(MsgType.MSG_OTKCLIENT_CALLBACK, info); } else { Debug.Log("Status code:" + resp.StatusCode + "," + resp.StatusDescription); // info.result = "{\"Status\":-2, \"Content\":"+resp.StatusDescription+"}"; info.result = "{\"Resp\":{\"RespCode\":-2, \"RespCodeStr\":\"-2\", \"RespDesc\":" + resp.StatusDescription + ", \"RespDescCN\":" + resp.StatusDescription + "}}"; info.succeed = false; info.isLua = false; ConsumerMgr.getInstance().pushMsg(MsgType.MSG_OTKCLIENT_CALLBACK, info); } } }; worker.RunWorkerAsync(); }