Пример #1
0
        public async Task <T> PostXmlObjectAsync <T>(string url, IDictionary <string, string> values, Encoding encoding)
            where T : class
        {
            if (string.IsNullOrWhiteSpace(url))
            {
                throw new ArgumentNullException(nameof(url));
            }

            if (values == null)
            {
                throw new ArgumentNullException(nameof(values));
            }

            using (var client = new HttpClient())
                using (HttpContent content = new WeakFormUrlEncodedContent(values, encoding))
                {
                    client.AddCorsHeader().AddAcceptXmlHeader();

                    if (this.BaseAddressUri != null)
                    {
                        client.BaseAddress = this.BaseAddressUri;
                    }

                    var response = await client.PostAsync(url, content);

                    var stream = await response.Content.ReadAsStreamAsync();

                    var serializer = new XmlSerializer(typeof(T));
                    return((T)serializer.Deserialize(stream));
                }
        }
Пример #2
0
        public async Task <string> PostAsync(string url, IDictionary <string, string> values, Encoding encoding)
        {
            if (string.IsNullOrWhiteSpace(url))
            {
                throw new ArgumentNullException(nameof(url));
            }

            if (values == null)
            {
                throw new ArgumentNullException(nameof(values));
            }

            using (var client = new HttpClient())
                using (HttpContent content = new WeakFormUrlEncodedContent(values, encoding))
                {
                    client.AddCorsHeader();

                    if (this.BaseAddressUri != null)
                    {
                        client.BaseAddress = this.BaseAddressUri;
                    }

                    var response = await client.PostAsync(url, content);

                    return(await response.Content.ReadAsStringAsync());
                }
        }
Пример #3
0
        private static byte[] GetContentByteArray(IEnumerable <KeyValuePair <string, string> > nameValueCollection, Encoding encoding)
        {
            if (nameValueCollection == null)
            {
                throw new ArgumentNullException(nameof(nameValueCollection));
            }

            StringBuilder stringBuilder = new StringBuilder();

            foreach (KeyValuePair <string, string> current in nameValueCollection)
            {
                if (stringBuilder.Length > 0)
                {
                    stringBuilder.Append('&');
                }

                stringBuilder.Append(WeakFormUrlEncodedContent.Encode(current.Key));
                stringBuilder.Append('=');
                stringBuilder.Append(WeakFormUrlEncodedContent.Encode(current.Value));
            }

            return(encoding.GetBytes(stringBuilder.ToString()));
        }
Пример #4
0
 public WeakFormUrlEncodedContent(IEnumerable <KeyValuePair <string, string> > nameValueCollection, Encoding encoding)
     : base(WeakFormUrlEncodedContent.GetContentByteArray(nameValueCollection, encoding))
 {
     this.Headers.ContentType = new MediaTypeHeaderValue(ContentTypes.UrlEncoded);
 }