public override HttpMessageHandler Build()
        {
            if (PrimaryHandler != null)
            {
                return(CreateHandlerPipeline(PrimaryHandler, AdditionalHandlers));
            }

            if (!Name.StartsWith(Const.ProxyPrefix))
            {
                throw new SpiderException(
                          "you are using proxy http client builder, but looks like your http client name is incorrect");
            }

            var uri     = Name.Replace(Const.ProxyPrefix, string.Empty);
            var handler = new ProxyHttpClientHandler
            {
                UseCookies             = true,
                UseProxy               = true,
                ProxyService           = _proxyService,
                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
                Proxy = new WebProxy(uri)
            };

            DefaultHttpMessageHandlerBuilder.SetServerCertificateCustomValidationCallback(Services, handler);
            PrimaryHandler = handler;

            var result = CreateHandlerPipeline(PrimaryHandler, AdditionalHandlers);

            return(result);
        }
        public void Ctor_Default_ReturnsExpectedInstance()
        {
            var result = new DefaultHttpMessageHandlerBuilder();

            Assert.NotNull(result.PrimaryHandler);
            Assert.Empty(result.AdditionalHandlers);
        }
        public SslTestRemoteService(
            IRemoteServiceFactory remoteServiceFactory,
            ILogManager logManager,
            HttpMessageHandler customHttpMessageHandler)
        {
            _logger = logManager.GetLogger <SslTestRemoteService>();

            var customHttpMessageHandlerBuilder = new DefaultHttpMessageHandlerBuilder(customHttpMessageHandler);

            var httpClientBuilder = new HttpClientBuilder(customHttpMessageHandlerBuilder).WithBaseUrl(ApiUrl)
                                    .WithLogger(_logger)
                                    .Build();

            _remoteService = remoteServiceFactory.Create <ISslApiService>(httpClientBuilder);
        }
        public DefaultHttpMessageHandlerBuilderTests()
        {
            _primaryHandler = Substitute.For <HttpMessageHandler>();

            _httpMessageHandlerBuilder = new DefaultHttpMessageHandlerBuilder(_primaryHandler);
        }