Esempio n. 1
0
        private IEnumerator Post()
        {
            var data = new UnityWebRequest(Settings.Instance().ApiHost + Uri, "POST");

            byte[] bodyRaw = new System.Text.UTF8Encoding().GetBytes(PostData);

            data.uploadHandler   = new UploadHandlerRaw(bodyRaw);
            data.downloadHandler = new DownloadHandlerBuffer();
            data.SetRequestHeader("Content-Type", "application/json");
            data.SendWebRequest();

            float timer  = 0;
            bool  failed = false;

            while (!data.isDone)
            {
                if (timer > TimeOut)
                {
                    failed = true;

                    break;
                }

                timer += Time.deltaTime;

                yield return(null);
            }

            if (data.isNetworkError)
            {
                failed = true;
            }

            if (failed)
            {
                ((IRequest)this).OnResponseError($"{this} Timeout error", data.responseCode);
                data.Dispose();
            }
            else
            {
                var jSend = JSendEx.Deserialize(data.downloadHandler.text)
                            ?? new ResponseApi()
                {
                    Data = data.downloadHandler.text
                };

                if (jSend.Message == "not string")
                {
                    jSend.Data = data.downloadHandler.data;
                }

                ((IRequest)this).OnResponseDone(jSend, data.responseCode);
            }
        }
Esempio n. 2
0
        private IEnumerator Get()
        {
            var data = UnityWebRequest.Get(Settings.Instance().ApiHost + Uri);

            data.SendWebRequest();
            float timer  = 0;
            bool  failed = false;

            while (!data.isDone)
            {
                if (timer > TimeOut)
                {
                    failed = true;

                    break;
                }

                timer += Time.deltaTime;

                yield return(null);
            }

            if (data.isNetworkError)
            {
                failed = true;
            }

            if (failed)
            {
                ((IRequest)this).OnResponseError($"{this} Timeout error", data.responseCode);
                data.Dispose();
            }
            else
            {
                ResponseApi responseApi = JSendEx.Deserialize(data.downloadHandler.text);

                if (responseApi.Data == null)
                {
                    responseApi.Data = data.downloadHandler.text;
                }

                ((IRequest)this).OnResponseDone(responseApi, data.responseCode);
            }
        }