Example #1
0
        public async Task <string> Delete <T>()
        {
            using (var httpClient = new HttpClient())
            {
                var endpoint    = _endpoint;
                var accessToken = _accesstoken;
                httpClient.DefaultRequestHeaders.Accept.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                if (accessToken != "")
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
                }
                var response = await httpClient.DeleteAsync(endpoint).ConfigureAwait(false);

                // Addedd on 2nd-March-2017 to extend access token
                if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    ExtendURLRequestModel objextend = new ExtendURLRequestModel();
                    objextend.rtoken = Settings.RenewalTokenSettings;

                    var renewjson    = JsonConvert.SerializeObject(objextend);
                    var renewaltoken = await ExtendToken <TokenResponse>(renewjson);

                    Settings.AccessTokenSettings  = renewaltoken?.accessToken;
                    Settings.RenewalTokenSettings = renewaltoken?.renewalToken;
                    httpClient.DefaultRequestHeaders.Accept.Clear();
                    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + renewaltoken.accessToken);
                    response = await httpClient.GetAsync(endpoint, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);
                }
                return(JsonConvert.DeserializeObject <string>(response.Content.ReadAsStringAsync().Result));
            }
        }
Example #2
0
        public async Task <T> Get <T>(Dictionary <string, string> query)
        {
            if (!isInternetConnected)
            {
                SetupToast();
                return(default(T));
            }
            using (var httpClient = new HttpClient())
            {
                var endpoint    = _endpoint;
                var accessToken = _accesstoken;
                httpClient.DefaultRequestHeaders.Accept.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                if (accessToken != "")
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
                }
                if (query != null)
                {
                    var querystr = CreateQueryString(query);
                    endpoint += "?" + querystr;
                }
                var response = await httpClient.GetAsync(endpoint, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);

                if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    ExtendURLRequestModel objextend = new ExtendURLRequestModel();
                    objextend.rtoken = Settings.RenewalTokenSettings;
                    var renewjson    = JsonConvert.SerializeObject(objextend);
                    var renewaltoken = await ExtendToken <TokenResponse>(renewjson);

                    Settings.AccessTokenSettings  = renewaltoken.accessToken;
                    Settings.RenewalTokenSettings = renewaltoken.renewalToken;
                    httpClient.DefaultRequestHeaders.Clear();
                    httpClient.DefaultRequestHeaders.Accept.Clear();
                    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + renewaltoken.accessToken);
                    response = await httpClient.GetAsync(endpoint, HttpCompletionOption.ResponseHeadersRead);

                    return(JsonConvert.DeserializeObject <T>(response.Content.ReadAsStringAsync().Result));
                }
                return(JsonConvert.DeserializeObject <T>(response.Content.ReadAsStringAsync().Result));
            }
        }
Example #3
0
        public async Task <T> Post <T>(string jsonobject)
        {
            if (!isInternetConnected)
            {
                SetupToast();
                return(default(T));
            }
            using (var httpClient = new HttpClient())
            {
                var endpoint    = _endpoint;
                var accessToken = _accesstoken;
                httpClient.DefaultRequestHeaders.Accept.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                if (accessToken != "")
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
                }
                var response = await httpClient.PostAsync(endpoint, new StringContent(jsonobject, Encoding.UTF8, "application/json")).ConfigureAwait(false);

                if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    ExtendURLRequestModel objextend = new ExtendURLRequestModel();
                    objextend.rtoken = Settings.RenewalTokenSettings;
                    var renewjson    = JsonConvert.SerializeObject(objextend);
                    var renewaltoken = await ExtendToken <TokenResponse>(renewjson);

                    Settings.AccessTokenSettings  = renewaltoken.accessToken;
                    Settings.RenewalTokenSettings = renewaltoken.renewalToken;
                    httpClient.DefaultRequestHeaders.Clear();
                    httpClient.DefaultRequestHeaders.Accept.Clear();
                    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + renewaltoken.accessToken);
                    response = await httpClient.PostAsync(endpoint, new StringContent(jsonobject, Encoding.UTF8, "application/json")).ConfigureAwait(false);

                    return(JsonConvert.DeserializeObject <T>(response.Content.ReadAsStringAsync().Result));
                }
                return(JsonConvert.DeserializeObject <T>(response.Content.ReadAsStringAsync().Result));
            }
        }
Example #4
0
        public async Task <T> GetResponse <T>()
        {
            if (!isInternetConnected)
            {
                SetupToast();
                return(default(T));
            }

            Func <Task <T> > runTask = async() =>
            {
                try
                {
                    using (var httpClient = new HttpClient())
                    {
                        var hasGoodConnection = await HasGoodConnection();

                        if (!hasGoodConnection)
                        {
                            httpClient.Timeout = TimeSpan.FromSeconds(30);
                        }

                        var endpoint    = _endpoint;
                        var accessToken = _accesstoken;
                        httpClient.DefaultRequestHeaders.Accept.Clear();
                        httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                        if (accessToken != "")
                        {
                            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
                        }
                        var response = await httpClient.GetAsync(endpoint, HttpCompletionOption.ResponseHeadersRead);

                        if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                        {
                            ExtendURLRequestModel objextend = new ExtendURLRequestModel();
                            objextend.rtoken = Settings.RenewalTokenSettings;
                            var renewjson    = JsonConvert.SerializeObject(objextend);
                            var renewaltoken = await ExtendToken <TokenResponse>(renewjson);

                            Settings.AccessTokenSettings  = renewaltoken.accessToken;
                            Settings.RenewalTokenSettings = renewaltoken.renewalToken;
                            httpClient.DefaultRequestHeaders.Clear();
                            httpClient.DefaultRequestHeaders.Accept.Clear();
                            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + renewaltoken.accessToken);
                            response = await httpClient.GetAsync(endpoint, HttpCompletionOption.ResponseHeadersRead);

                            return(JsonConvert.DeserializeObject <T>(response.Content.ReadAsStringAsync().Result));
                        }
                        stringResult = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                        return(JsonConvert.DeserializeObject <T>(stringResult));
                    }
                }
                catch (System.Net.Http.HttpRequestException requestException)
                {
                }
                catch (Exception exception)
                {
                    if (!App.WasHttpFailed)
                    {
                        App.WasHttpFailed = true;
                        return(await GetResponse <T>());
                    }
                }
                finally
                {
                    App.WasHttpFailed = false;
                }

                return(default(T));
            };

            return(await Task.Run(runTask, tokenSource.Token));
        }