internal WebAPIRequest(WebMethodType methodType, String url, String path, String messageBody)
 {
     MethodType = methodType;
     RawUrl = url;
     Path = path;
     MessageBody = messageBody;
 }
 internal WebAPIRequest(WebMethodType methodType, String url, String path, String messageBody)
 {
     MethodType  = methodType;
     RawUrl      = url;
     Path        = path;
     MessageBody = messageBody;
 }
Exemple #3
0
    private bool isTokenValid(string token, WebMethodType type)
    {
        bool isValid = true;

        if (token == "")
        {
            isValid = false;
        }
        else
        {
            isValid = CheckTokenValidity(token).Result;
        }
        return(isValid);
    }
        /// <summary>
        ///  for parameterless requests
        /// </summary>
        /// <typeparam name="TRes"></typeparam>
        /// <param name="actionUrl">action url except base api url</param>
        /// <param name="methodType">request method type</param>
        /// <returns></returns>
        public async Task <HttpClientResponse <TRes> > InvokeApi <TRes>(string actionUrl, WebMethodType methodType = WebMethodType.Post)
        {
            Uri url = new Uri(new Uri(_apiBaseUrl), actionUrl);

            using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


                switch (methodType)
                {
                case WebMethodType.Get:
                    using (var response = await client.GetAsync(url))
                    {
                        if (response.StatusCode != HttpStatusCode.OK)
                        {
                            return(new HttpClientResponse <TRes> {
                                HttpStatusCode = response.StatusCode
                            });
                        }

                        var data = await response.Content.ReadAsStringAsync();

                        var json = GetParsedData <TRes>(data);    //JObject.Parse(data);

                        return(new HttpClientResponse <TRes> {
                            HttpStatusCode = response.StatusCode, ResponseData = json
                        });
                    }

                case WebMethodType.Post:
                    using (var response = await client.PostAsync(url, null))
                    {
                        if (response.StatusCode != HttpStatusCode.OK)
                        {
                            return(new HttpClientResponse <TRes> {
                                HttpStatusCode = response.StatusCode
                            });
                        }

                        var data = await response.Content.ReadAsStringAsync();

                        var json = GetParsedData <TRes>(data);    //JObject.Parse(data);

                        return(new HttpClientResponse <TRes> {
                            HttpStatusCode = response.StatusCode, ResponseData = json
                        });
                    }

                default:
                    throw new ArgumentOutOfRangeException(nameof(methodType), methodType, null);
                }
            }
        }
        /// <summary>
        ///  for parameterless requests and no need to get any  response content
        /// </summary>
        /// <param name="actionUrl"></param>
        /// <param name="methodType">request method type</param>
        /// <returns></returns>
        public async Task <HttpClientResponse <ApiResponse> > InvokeApi(string actionUrl, WebMethodType methodType = WebMethodType.Post)
        {
            Uri url = new Uri(new Uri(_apiBaseUrl), actionUrl);

            using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                // Get Token
                using (var response = await client.PostAsync(url, null))
                {
                    if (response.StatusCode != HttpStatusCode.OK)
                    {
                        return(new HttpClientResponse <ApiResponse> {
                            HttpStatusCode = response.StatusCode
                        });
                    }

                    var data = await response.Content.ReadAsStringAsync();

                    var json = GetParsedData <ApiResponse>(data); //JObject.Parse(data);

                    return(new HttpClientResponse <ApiResponse> {
                        HttpStatusCode = response.StatusCode, ResponseData = json
                    });
                }
            }
        }