Пример #1
0
        private HttpClient BuildHttpClient(HttpTransportSettings settings = null)
        {
            var httpClientHandler = new HttpClientHandler
            {
                ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true,
                SslProtocols = SslProtocols.Tls12,
                Proxy        = null
            };

            var client = new HttpClient(httpClientHandler);

            if (settings is null)
            {
                return(client);
            }

            if (settings.AuthenticationHeader != null)
            {
                client.DefaultRequestHeaders.Authorization = settings.AuthenticationHeader;
            }

            foreach (var header in settings.Headers)
            {
                client.DefaultRequestHeaders.Add(header.Key, header.Value);
            }

            if (settings.MediaTypeWithQualityHeader != null)
            {
                client.DefaultRequestHeaders
                .Accept
                .Add(settings.MediaTypeWithQualityHeader);
            }

            return(client);
        }
Пример #2
0
 public CustomHttpResult GetString(HttpTransportSettings settings)
 {
     using (var client = BuildHttpClient(settings))
     {
         var res    = client.GetAsync(settings.Url).Result;
         var retVal = new CustomHttpResult
         {
             IsSuccessStatusCode = res.IsSuccessStatusCode,
             HttpStatusCode      = res.StatusCode,
             Content             = res.Content.ReadAsStringAsync().Result
         };
         return(retVal);
     }
 }
Пример #3
0
        public CustomHttpResult PostEncodedParam(HttpTransportSettings settings, FormUrlEncodedContent content)
        {
            using (var client = BuildHttpClient(settings))
            {
                var res = client.PostAsync(settings.Url, content).Result;

                var retVal = new CustomHttpResult
                {
                    IsSuccessStatusCode = res.IsSuccessStatusCode,
                    HttpStatusCode      = res.StatusCode,
                    Content             = res.Content.ReadAsStringAsync().Result
                };
                return(retVal);
            }
        }
Пример #4
0
        public CustomHttpResult PostRawBytes(HttpTransportSettings settings, byte[] bytes)
        {
            using (var client = BuildHttpClient(settings))
            {
                var request = new HttpRequestMessage
                {
                    RequestUri = settings.Url,
                    Method     = HttpMethod.Post,
                    Content    = new ByteArrayContent(bytes),
                };

                request.Content.Headers.ContentType = new MediaTypeHeaderValue(settings.ContentType);

                var res = client.PostAsync(settings.Url, new ByteArrayContent(bytes)).Result;

                var retVal = new CustomHttpResult
                {
                    IsSuccessStatusCode = res.IsSuccessStatusCode,
                    HttpStatusCode      = res.StatusCode,
                    Content             = res.Content.ReadAsStringAsync().Result
                };
                return(retVal);
            }
        }