Esempio n. 1
0
        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);
 }
Esempio n. 8
0
 public void GetJSON(string uri, ReqCallback callback)
 {
     // How to return a string from RequestJSON?
     StartCoroutine(RequestJSON(uri, callback));
 }
Esempio n. 9
0
    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();
    }