Exemple #1
0
        public IEnumerator Logout(string token, OnRequestComplete complete, OnRequestError error)
        {
            string url = routes.Single(route => route.Key == "logout").Value;

            UnityWebRequest request = UnityWebRequest.Post(url, "");

            request.SetRequestHeader("Accept", "application/json");
            request.SetRequestHeader("Authorization", "Bearer " + token);
            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                error(request.error);
            }
            else
            {
                try {
                    String         json     = request.downloadHandler.text;
                    LogoutResponse response = JsonUtility.FromJson <LogoutResponse>(json);
                    if (response.success)
                    {
                        complete();
                    }
                    else
                    {
                        error(response.error.message);
                    }
                }
                catch (Exception ex) {
                    error(ex.ToString());
                }
            }
        }
Exemple #2
0
        public IEnumerator Save(String token, OnRequestComplete complete, OnRequestError error, PlanRequest plan)
        {
            string url = routes.Single(u => u.Key == "plans").Value;

            Debug.Log("plan name in kHttp = " + plan.name);
            Debug.Log("Plan ToJson = " + JsonUtility.ToJson(plan));
            Debug.Log("URL is = " + url);
            UnityWebRequest request = UnityWebRequest.Put(url, JsonUtility.ToJson(plan));

            request.SetRequestHeader("Accept", "application/json");
            request.SetRequestHeader("Content-Type", "application/json");
            request.SetRequestHeader("Authorization", "Bearer " + token);
            request.method = UnityWebRequest.kHttpVerbPOST;
            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                Debug.Log("GOT A HTTP isHttpError = " + request.isHttpError);
                Debug.Log("GOT A HTTP isNetworkError = " + request.isNetworkError);
                error(request.error);
            }
            else
            {
                String json = request.downloadHandler.text;
                complete(json);
            }
        }
        private static IEnumerator _DownloadFile(string url, string savePath,
                                                 OnRequestSuccess onDownloadStart,
                                                 OnRequestSuccess onFinish,
                                                 OnRequestError onError,
                                                 OnRequestProgress onProgress)
        {
            var headRequest = UnityWebRequest.Head(url);

            yield return(headRequest.SendWebRequest());

            var totalSize = long.Parse(headRequest.GetResponseHeader("Content-Length"));
            var fileInfo  = new FileInfo(savePath);

            if (fileInfo.Exists && fileInfo.Length == totalSize)
            {
                onFinish?.Invoke(headRequest);
            }
            else
            {
                using (var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET))
                {
                    var handler = new DownloadHandlerFileRange(savePath, request);
                    request.downloadHandler = handler;
                    onDownloadStart?.Invoke(request);

                    var asyncOp = request.SendWebRequest();
                    while (!asyncOp.isDone)
                    {
                        yield return(null);

                        onProgress?.Invoke(asyncOp);
                    }

                    if (request.isNetworkError || request.isHttpError)
                    {
                        handler.Close();
                        if (onError != null)
                        {
                            Debug.LogWarningFormat("SendRequest Failed:\nresponseCode :{0}\nerror :{1}\nurl:{2}",
                                                   request.responseCode, request.error, request.url);
                            onError(request);
                        }
                        else
                        {
                            Debug.LogErrorFormat("SendRequest Failed:\nresponseCode :{0}\nerror :{1}\nurl:{2}",
                                                 request.responseCode, request.error, request.url);
                        }
                    }
                    else
                    {
                        Debug.LogFormat("Finish UnityWebRequest: {0}\nresponseCode :{1}", request.url,
                                        request.responseCode);
                        onFinish?.Invoke(request);
                    }
                }
            }
        }
        public static void DownloadFile(string url, string savePath,
                                        OnRequestSuccess onDownloadStart,
                                        OnRequestSuccess onFinish,
                                        OnRequestError onError,
                                        OnRequestProgress onProgress)
        {
            string dir = Path.GetDirectoryName(savePath);

            if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            Instance.StartCoroutine(_DownloadFile(url, savePath, onDownloadStart, onFinish, onError, onProgress));
        }
Exemple #5
0
        /// <summary>
        /// in case of a failure will enqueue the failed request again
        /// </summary>
        /// <param name="task">the task that handled the request</param>
        /// <param name="state">the original request object</param>
        private void HandleResponse(Task <HttpResponseMessage> task, object state)
        {
            Interlocked.Decrement(ref pending);

            if (!task.IsCompleted || task.Status != TaskStatus.RanToCompletion)
            {
                Retry(state as QueueRequest);
                OnRequestError?.Invoke(task.Exception, task.Status == TaskStatus.Canceled);
            }
            else if ((int)task.Result.StatusCode >= 300)
            {
                Retry(state as QueueRequest);
                OnHttpError?.Invoke(task.Result.StatusCode);
            }
            else
            {
                OnRequestSent?.Invoke();
            }
        }
Exemple #6
0
        public IEnumerator GetList(String token, OnRequestComplete complete, OnRequestError error)
        {
            string          url     = routes.Single(u => u.Key == "plans").Value;
            UnityWebRequest request = UnityWebRequest.Get(url);

            request.SetRequestHeader("Accept", "application/json");
            request.SetRequestHeader("Content-Type", "application/json");
            request.SetRequestHeader("Authorization", "Bearer " + token);
            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                Debug.Log(request);
                error(request.error);
            }
            else
            {
                String json = request.downloadHandler.text;
                complete(json);
            }
        }
        protected async Task <DateTime[]> GetDates()
        {
            RestRequest request = new RestRequest($"{PlatformInfo.GetAvailableDatesApiMethod}/{OperationInfo.Number}");

            ConfigureRequest(request);

            IRestResponse dates = await ApiClient.ExecuteAsync(request);

            if (dates.StatusCode != HttpStatusCode.OK)
            {
                OnRequestError?.Invoke(this, new DateCheckerErrorEventArgs((int)dates.StatusCode));
                throw new Exception();
            }

            if (dates.Content.Contains(PlatformInfo.GeneralErrorMessage))
            {
                OnRequestError?.Invoke(this, new DateCheckerErrorEventArgs((int)dates.StatusCode));
                throw new Exception();
            }

            DateTime[] availableDates = null;

            try
            {
                DateCheckDto dateCheckDto = JsonConvert.DeserializeObject <DateCheckDto>(dates.Content);
                availableDates = dateCheckDto.AvailableDates;
            }
            catch
            {
                availableDates = JsonConvert.DeserializeObject <DateTime[]>(dates.Content);
            }

            string datesString = JsonConvert.SerializeObject(availableDates);

            OnRequestOK?.Invoke(this, new DateCheckerOkEventArgs(datesString));

            return(availableDates);
        }
Exemple #8
0
        public IEnumerator Me(string token, OnRequestComplete complete, OnRequestError error)
        {
            string url = routes.Single(route => route.Key == "me").Value;

            Debug.Log("ME AUTH TOKE = " + token);
            UnityWebRequest request = UnityWebRequest.Get(url);

            request.SetRequestHeader("Accept", "application/json");
            request.SetRequestHeader("Authorization", "Bearer " + token);
            Debug.Log("Auth token = " + token);
            request.method = UnityWebRequest.kHttpVerbGET;
            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                error(request.error);
            }
            else
            {
                try {
                    String json = request.downloadHandler.text;
                    Debug.Log("JsonResponseLogin =" + json);
                    UserResponse response = JsonUtility.FromJson <UserResponse>(json);
                    if (response.success)
                    {
                        UserManager.instance.Login(response.data.firstname, response.data.lastname, response.data.email, response.data.state, response.data.zip, response.data.phone, response.data.id);
                        complete();
                    }
                    else
                    {
                        error(response.error.message);
                    }
                }
                catch (Exception ex) {
                    error(ex.ToString());
                }
            }
        }
Exemple #9
0
        public IEnumerator SignIn(string email, string password, OnRequestComplete complete, OnRequestError error)
        {
            string  url  = routes.Single(route => route.Key == "login").Value;
            WWWForm data = new WWWForm();

            data.AddField("email", email);
            data.AddField("password", password);

            UnityWebRequest request = UnityWebRequest.Post(url, data);

            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                error(request.error);
            }
            else
            {
                try {
                    String       json     = request.downloadHandler.text;
                    AuthResponse response = JsonUtility.FromJson <AuthResponse>(json);
                    if (response.success)
                    {
                        HttpManager.instance.token = response.data.access_token;
                        complete();
                    }
                    else
                    {
                        error(response.error.message);
                    }
                }
                catch (Exception ex) {
                    error(ex.ToString());
                }
            }
        }
Exemple #10
0
        public IEnumerator Register(string email, string password,
                                    string firstname, string lastname, string state, int zip,
                                    string phone, OnRequestComplete complete, OnRequestError error)
        {
            string url = routes.Single(route => route.Key == "register").Value;

            WWWForm regData = new WWWForm();

            regData.AddField("email", email);
            regData.AddField("password", password);
            regData.AddField("firstname", firstname);
            regData.AddField("lastname", lastname);
            regData.AddField("state", state);
            regData.AddField("zip", zip);
            regData.AddField("phone", phone);

            UnityWebRequest request = UnityWebRequest.Post(url, regData);

            request.SetRequestHeader("Accept", "application/json");
            //request.SetRequestHeader("Content-Type", "application/json");
            //request.method = UnityWebRequest.kHttpVerbPOST;
            Debug.Log(request);
            Debug.Log("url = " + url);
            Debug.Log("regData = " + regData);
            //request.SetRequestHeader("Accept", "application/json");
            yield return(request.SendWebRequest());

            //String json = request.downloadHandler.data;
            //Debug.Log(request.downloadHandler.text);

            if (request.isNetworkError || request.isHttpError)
            {
                error(request.error);
                error(request.downloadHandler.text);
            }
            else
            {
                try
                {
                    String json = request.downloadHandler.text;
                    Debug.Log("Register Repsonse JSON = " + json);
                    RegisterResponse response = JsonUtility.FromJson <RegisterResponse>(json);
                    if (response.success)
                    {
                        UserManager.instance.Login(
                            response.data.user.firstname,
                            response.data.user.lastname,
                            response.data.user.email,
                            response.data.user.state,
                            response.data.user.zip,
                            response.data.user.phone,
                            response.data.user.id);
                        HttpManager.instance.token = response.data.token;
                        complete();
                    }
                    else
                    {
                        error(json);
                        //error(response.error.message);
                    }
                }
                catch (Exception ex) {
                    Debug.Log("Found exception ");// + ex);
                    error(ex.ToString());
                }
            }
        }
        //--------------------------------------------------------Constructor:----------------------------------------------------------------\\
        #region --Constructors--


        #endregion
        //--------------------------------------------------------Set-, Get- Methods:---------------------------------------------------------\\
        #region --Set-, Get- Methods--


        #endregion
        //--------------------------------------------------------Misc Methods:---------------------------------------------------------------\\
        #region --Misc Methods (Public)--


        #endregion

        #region --Misc Methods (Private)--


        #endregion

        #region --Misc Methods (Protected)--
        protected void InvokeOnRequestError(RequestErrorEventArgs args)
        {
            OnRequestError?.Invoke(this, args);
        }
        public static void Download(string url, string savePath, OnRequestSuccess onFinish, OnRequestError onError,
                                    OnRequestProgress onProgress, int maxRetry = 3, float retryDelay = 1.0f)
        {
            string dir = Path.GetDirectoryName(savePath);

            if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            Instance.StartCoroutine(TrySendRequest(url, (uri) =>
            {
                var uwr = new UnityWebRequest(uri, UnityWebRequest.kHttpVerbGET)
                {
                    downloadHandler = new DownloadHandlerFile(savePath)
                };
                return(uwr);
            }, onFinish, onError, onProgress, maxRetry, retryDelay));
        }
        public delegate void OnRequestError(string code);    // Ошибка запроса

        public async Task <bool> sendRequest(string url, FormUrlEncodedContent data, OnRequestComplete complete, OnRequestError error)
        {
            /* Data Form Example */

            /*var formContent = new FormUrlEncodedContent(new[]{
             *  new KeyValuePair<string, string>("somekey", "1"),
             * });*/

            // Создаем клиент и отправляем запрос
            try{
                var myHttpClient = new HttpClient();                        // Создать клиент
                var response     = await myHttpClient.PostAsync(url, data); // Ждем ответа от сервера

                var json = await response.Content.ReadAsStringAsync();      // Получаем ответ от сервера для конверсии

                // Попытка обработки ответа сервера
                try{                                                                        // Успех
                    responceBase resp = JsonConvert.DeserializeObject <responceBase>(json); // Конверсия JSON
                    if (resp.complete)                                                      // Все прошло хорошо
                    {
                        complete(json);                                                     // Все прошло ОК
                        return(true);
                    }
                    else                     // Ошибка
                    {
                        error(resp.message); // Выдать ошибку
                        return(false);
                    }
                } catch (Exception ex) {                                                         // Ошибка
                    error("Failed to convert server responce. Please, try again later." + json); // Выдать ошибку
                    return(false);
                }
            } catch (Exception ex) {                                                                     // Ошибка отправки запроса
                error("Failed to send responce. Please, check your internet connection and try again."); // Выдать ошибку
                return(false);
            }
        }
Exemple #14
0
 public static async void GET(string url, OnRequestComplete complete, OnRequestError error)
 {
     await GETAsync(url, complete, error);
 }
Exemple #15
0
        public IEnumerator GetToken(int plan_id, string auth_token, OnRequestComplete complete, OnRequestError error)
        {
            string url = routes.Single(u => u.Key == "share").Value + plan_id.ToString();
            //string url = routes.Single(route => route.Key == "share").Value + plan_id.ToString();

            UnityWebRequest request = UnityWebRequest.Get(url);

            request.SetRequestHeader("Accept", "application/json");
            request.SetRequestHeader("Authorization", "Bearer " + auth_token);
            request.method = UnityWebRequest.kHttpVerbGET;

            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                error(request.error);
            }
            else
            {
                try {
                    String json = request.downloadHandler.text;
                    Debug.Log(json);
                    //Share response = JsonUtility.FromJson<UserResponse>(json);
                    //if (response.success) {
                    //    UserManager.instance.Login(response.data.firstname, response.data.lastname, response.data.email, response.data.state, response.data.zip, response.data.phone);
                    //complete();
                    //} else {
                    //error(response.error.message);
                    //}
                }
                catch (Exception ex) {
                    error(ex.ToString());
                }
            }
        }
        private IEnumerator _sendRequest(string url, WWWForm data, OnRequestCompleted complete = null, OnRequestError error = null)
        {
            var request = new WWW(url, data); // Create WWW Request

            yield return(request);            // Send Request

            // Work with Response
            if (request.error != null)  // Request has error
            {
                throw new Exception("Не удалось отправить запрос к серверу VK API. Проверьте соединение с интернетом и попробуйте снова.");
            }
            else                                                                                   // No Errors
            {
                BaseRequestModel response = JsonUtility.FromJson <BaseRequestModel>(request.text); // Get Base Model from Response Text
                if (response.error.error_code == -1)
                {                                                                                  // Response not has an errors
                    if (complete != null)
                    {
                        complete(request.text); // Return Complete
                    }
                }
                else
                { // Reponse has errors
                    if (error != null)
                    {
                        error(response.error); // Show Error
                    }
                    if (settings.debug_mode)
                    {
                        Debug.Log("VK SDK Error: " + response.error.error_msg);
                    }
                }
            }
        }
Exemple #17
0
        private async Task RegisterConsumerAsync(CancellationToken stoppingToken)
        {
            var topic = string.Format(Topics.Spider, SpiderId.Id);

            Logger.LogInformation($"{SpiderId} register topic {topic}");
            _consumer           = new AsyncMessageConsumer <byte[]>(topic);
            _consumer.Received += async bytes =>
            {
                object message;
                try
                {
                    message = await bytes.DeserializeAsync(stoppingToken);

                    if (message == null)
                    {
                        return;
                    }
                }
                catch (Exception e)
                {
                    Logger.LogError($"Deserialize message failed: {e}");
                    return;
                }

                switch (message)
                {
                case Messages.Spider.Exit exit:
                {
                    Logger.LogInformation(
                        $"{SpiderId} receive exit message {System.Text.Json.JsonSerializer.Serialize(exit)}");
                    if (exit.SpiderId == SpiderId.Id)
                    {
                        await ExitAsync();
                    }

                    break;
                }

                case Response response:
                {
                    // 1. 从请求队列中去除请求
                    // 2. 若是 timeout 的请求,无法通过 Dequeue 获取,会通过 _requestedQueue.GetAllTimeoutList() 获取得到
                    var request = _requestedQueue.Dequeue(response.RequestHash);

                    if (request != null)
                    {
                        if (response.StatusCode.IsSuccessStatusCode())
                        {
                            request.Agent = response.Agent;

                            if (IsDistributed)
                            {
                                Logger.LogInformation(
                                    $"{SpiderId} download {request.RequestUri}, {request.Hash} via {request.Agent} success");
                            }

                            // 是否下载成功由爬虫来决定,则非 Agent 自身
                            await _services.StatisticsClient.IncreaseAgentSuccessAsync(response.Agent,
                                                                                       response.ElapsedMilliseconds);
                            await HandleResponseAsync(request, response, bytes);
                        }
                        else
                        {
                            await _services.StatisticsClient.IncreaseAgentFailureAsync(response.Agent,
                                                                                       response.ElapsedMilliseconds);

                            Logger.LogError(
                                $"{SpiderId} download {request.RequestUri}, {request.Hash} status code: {response.StatusCode} failed: {response.ReasonPhrase}");

                            // 每次调用添加会导致 Requested + 1, 因此失败多次的请求最终会被过滤不再加到调度队列
                            await AddRequestsAsync(request);

                            OnRequestError?.Invoke(request, response);
                        }
                    }

                    break;
                }

                default:
                    Logger.LogError(
                        $"{SpiderId} receive error message {System.Text.Json.JsonSerializer.Serialize(message)}");
                    break;
                }
            };

            await _services.MessageQueue.ConsumeAsync(_consumer, stoppingToken);
        }
 public static void Post(string url, byte[] postBytes, string contentType, OnRequestSuccess onFinish, OnRequestError onError, OnRequestProgress onProgress, int maxRetry = 3, float retryDelay = 1.0f)
 {
     Instance.StartCoroutine(TrySendRequest(url, (uri) =>
     {
         UnityWebRequest request = new UnityWebRequest(uri, "POST")
         {
             uploadHandler = new UploadHandlerRaw(postBytes)
             {
                 contentType = contentType
             },
             downloadHandler = new DownloadHandlerBuffer()
         };
         return(request);
     }, onFinish, onError, onProgress, maxRetry, retryDelay));
 }
        private static IEnumerator TrySendRequest(string url, Func <string, UnityWebRequest> requestCreator, OnRequestSuccess onFinish, OnRequestError onError, OnRequestProgress onProgress, int maxRetry, float retryDelay)
        {
            Debug.LogFormat("Start Send UnityWebRequest: " + url);
            int retry = 0;

            while (retry++ < maxRetry)
            {
                using (var request = requestCreator(url))
                {
                    var asyncOp = request.SendWebRequest();
                    while (!asyncOp.isDone)
                    {
                        if (onProgress != null)
                        {
                            onProgress(asyncOp);
                        }
                        yield return(null);
                    }

                    if (request.isNetworkError || request.isHttpError)
                    {
                        if (retry >= maxRetry)
                        {
                            if (onError != null)
                            {
                                Debug.LogWarningFormat("SendRequest Failed:\nresponseCode :{0}\nerror :{1}\nurl:{2}", request.responseCode, request.error, request.url);
                                onError(request);
                            }
                            else
                            {
                                Debug.LogErrorFormat("SendRequest Failed:\nresponseCode :{0}\nerror :{1}\nurl:{2}", request.responseCode, request.error, request.url);
                            }
                        }
                        else
                        {
                            Debug.LogFormat("Try again url :{0}\ntime :{1}\nresponseCode :{2}\nerror :{3}",
                                            request.url, retry, request.responseCode, request.error);
                            yield return(new WaitForSeconds(retryDelay));
                        }
                    }
                    else
                    {
                        Debug.LogFormat("Finish UnityWebRequest: {0}\nresponseCode :{1}", request.url, request.responseCode);
                        if (onFinish != null)
                        {
                            onFinish(request);
                        }

                        break; //success,break retry loop
                    }
                }
            }
        }
 public static void Post(string url, string postData, string contentType, OnRequestSuccess onFinish,
                         OnRequestError onError, OnRequestProgress onProgress, int maxRetry = 3, float retryDelay = 1.0f)
 {
     Post(url, Encoding.UTF8.GetBytes(postData), contentType, onFinish, onError, onProgress, maxRetry, retryDelay);
 }
Exemple #21
0
        public static async Task <bool> GETAsync(string url, OnRequestComplete complete, OnRequestError error)
        {
            try
            {                                        // Creating client and send request
                // Set client vars
                var myHttpClient = new HttpClient(); // Create HTTP Client
                myHttpClient.DefaultRequestHeaders.Add("View", "stb3");
                myHttpClient.DefaultRequestHeaders.Add("X-Auth-Token", Hidden.ServiceToken);
                var response = await myHttpClient.GetAsync(url);       // HTTP Response

                var json = await response.Content.ReadAsStringAsync(); // JSON Data

                try
                {
                    complete(json); // Show Complete
                    return(true);
                }
                catch (Exception ex)
                {                                      // Failed to decode data
                    error(ex.Message + ex.StackTrace); // Show Error
                    return(false);
                }
            }
            catch (Exception ex)
            {                                                                    // Failed to send request
                error(ex.Message + "\n=====================\n" + ex.StackTrace); // Show Error
                return(false);
            }
        }
 public static void PostRaw(string url, string postData, OnRequestSuccess onFinish,
                            OnRequestError onError, OnRequestProgress onProgress, int maxRetry = 3, float retryDelay = 1.0f)
 {
     Instance.StartCoroutine(TrySendRequest(url, (uri) => UnityWebRequest.Post(uri, postData), onFinish, onError, onProgress, maxRetry, retryDelay));
 }
Exemple #23
0
    private IEnumerator SendTimeStatistics(string currentPlatform, int time, OnRequestComplete complete, OnRequestError error)
    {
        WWWForm newForm = new WWWForm();

        //string currentPlatform = Enum.GetName(typeof(Platform), _platform);

        newForm.AddField(_DATABASE_HOST, _databaseHost);
        newForm.AddField(_DATABASE_USER, _databaseUsername);
        newForm.AddField(_DATABASE_PASSWORD, _databasePassword);
        newForm.AddField(_DATABASE_NAME, _databaseName);
        newForm.AddField(_DATABASE_PORT_NUMBER, _databasePort);

        newForm.AddField(_GAME_TABLE, _tableName);

        newForm.AddField(_PLATFORM_COLUMN_NAME, _platfomColumnName);
        newForm.AddField(_TIME_COLUMN_NAME, _timeColumnName);
        newForm.AddField(_PLATFORM, currentPlatform);
        newForm.AddField(_TIME_VALUE, time);

        WWW request = new WWW(_PHP_SCRIPT_URL, newForm);

        yield return(request);

        if (request.error != null)
        {
            error("Не удалось отправить запрос на сервер");
        }
        else
        {
            try
            {
                Debug.Log(request.text);
                if (request.text == _PHP_SCRIPT_RETURN)
                {
                    complete();
                }
                else
                {
                    error(request.text);
                }
            }
            catch
            {
                error("Не удалось обработать ответ сервера");
                Debug.Log("Ошибка обработки ответа сервера. Данные ответа: " + request.text);
            }
        }
    }
Exemple #24
0
        public static async Task <bool> POSTAsync(string url, HttpContent data, OnRequestComplete complete, OnRequestError error)
        {
            try
            {                                                               // Creating client and send request
                // Set client vars
                var myHttpClient = new HttpClient();                        // Create HTTP Client
                var response     = await myHttpClient.PostAsync(url, data); // HTTP Response

                var json = await response.Content.ReadAsStringAsync();      // JSON Data

                try
                {
                    complete(json); // Show Complete
                    return(true);
                }
                catch (Exception ex)
                {                                                                    // Failed to decode data
                    error(ex.Message + "\n=====================\n" + ex.StackTrace); // Show Error
                    return(false);
                }
            }
            catch (Exception ex)
            {                                                                    // Failed to send request
                error(ex.Message + "\n=====================\n" + ex.StackTrace); // Show Error
                return(false);
            }
        }
Exemple #25
0
        public IEnumerator Delete(String token, int plan_id, OnRequestComplete complete, OnRequestError error)
        {
            string          url     = routes.Single(u => u.Key == "plans").Value + '\\' + plan_id;
            UnityWebRequest request = UnityWebRequest.Delete(url);

            request.SetRequestHeader("Accept", "application/json");
            request.SetRequestHeader("Content-Type", "application/json");
            request.SetRequestHeader("Authorization", "Bearer " + token);
            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                error(request.error);
            }
            else
            {
                string good = "Success";
                //String json = request.downloadHandler.text;
                complete(good);
            }
        }
Exemple #26
0
        public static async Task <bool> PostImage(string url, OnRequestComplete complete, OnRequestError error)
        {
            try
            {                                        // Creating client and send request
                var myHttpClient = new HttpClient(); // Create HTTP Client
                myHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8");
                myHttpClient.DefaultRequestHeaders.Add("Authorization", Hidden.YandexToken);
                var response = await myHttpClient.PostAsync("https://dialogs.yandex.net/api/v1/skills/" + Hidden.YandexSkillId + "/images",
                                                            Request.ToHttpContent(new KeyValuePair <string, string>[] {
                    new KeyValuePair <string, string>("url", url)      // App token
                }));                                                   // HTTP Response

                var json = await response.Content.ReadAsStringAsync(); // JSON Data

                try
                {
                    complete(json); // Show Complete
                    return(true);
                }
                catch (Exception ex)                                                 //
                {                                                                    // Failed to decode data
                    error(ex.Message + "\n=====================\n" + ex.StackTrace); // Show Error
                    return(false);
                }
            }
            catch (Exception ex)
            {                                                                    // Failed to send request
                error(ex.Message + "\n=====================\n" + ex.StackTrace); // Show Error
                return(false);
            }
        }
Exemple #27
0
 public static async void POST(string url, HttpContent data, OnRequestComplete complete, OnRequestError error)
 {
     await POSTAsync(url, data, complete, error);
 }
 public static void Get(string url, OnRequestSuccess onFinish, OnRequestError onError, OnRequestProgress onProgress, int maxRetry = 3, float retryDelay = 1.0f)
 {
     Instance.StartCoroutine(TrySendRequest(url, UnityWebRequest.Get, onFinish, onError, onProgress, maxRetry, retryDelay));
 }