public static async Task <TResponse> GetAsync <TResponse>(this HttpClient client, string url, NameValueCollection queryString = null, NameValueCollection headers = null)
        {
            HttpRequestMessage request = await createRequestMessage("GET", url, null, queryString, headers);

            HttpResponseMessage response = await client.SendAsync(request);

            if (!request.IsDisableEnsureSuccessStatusCode())
            {
                response.EnsureSuccessStatusCode();
            }
            return(await response.GetObjectAsync <TResponse>());
        }
        public static async Task <TResponse> PostAsync <TResponse>(this HttpClient client, string url, object body, string method = "POST", NameValueCollection queryString = null, NameValueCollection headers = null)
        {
            if (String.IsNullOrEmpty(method))
            {
                method = "POST";
            }
            HttpRequestMessage request = await createRequestMessage(method, url, body, queryString, headers);

            HttpResponseMessage response = await client.SendAsync(request);

            if (!request.IsDisableEnsureSuccessStatusCode())
            {
                response.EnsureSuccessStatusCode();
            }
            return(await response.GetObjectAsync <TResponse>());
        }