public static async Task <HttpResponseMessage> PostJsonAsync <T>(this ExtendedHttpClient client, T model)// where T : class
        {
            var json = JsonConvert.SerializeObject(model);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            return(await client.PostAsync(client.RequestUri, data));
        }
        public static async Task <T> PostJsonAsync <T>(this ExtendedHttpClient client, object model)
        {
            var json     = JsonConvert.SerializeObject(model);
            var data     = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await client.PostAsync(client.RequestUri, data);

            response.EnsureSuccessStatusCode();
            var resp = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <T>(resp));
        }
        public static async Task <T> PostXmlAsync <T>(this ExtendedHttpClient client, object model)
        {
            var xml      = model.XmlSerializeToString();
            var content  = new StringContent(xml, Encoding.UTF8, "application/xml");
            var response = await client.PostAsync(client.RequestUri, content);

            response.EnsureSuccessStatusCode();
            var responseBody = await response.Content.ReadAsStringAsync();

            return(responseBody.XmlDeserializeFromString <T>());
        }
        public static async Task <HttpResponseMessage> PostXmlAsync <T>(this ExtendedHttpClient client, T model)
        {
            string xml = "";

            if (!(model is String) && !(model is string))
            {
                xml = model.XmlSerializeToString();
            }
            else
            {
                xml = model as string;
            }

            var content = new StringContent(xml, Encoding.UTF8, "application/xml");

            return(await client.PostAsync(client.RequestUri, content));
        }