Пример #1
0
        private static HttpClient ConfigureHttpClient(WebDavClientParams @params)
        {
            var httpHandler = new HttpClientHandler
            {
                AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip,
                PreAuthenticate        = @params.PreAuthenticate,
                UseDefaultCredentials  = @params.UseDefaultCredentials,
                UseProxy = @params.UseProxy
            };

            if (@params.Credentials != null)
            {
                httpHandler.Credentials           = @params.Credentials;
                httpHandler.UseDefaultCredentials = false;
            }
            if (@params.Proxy != null)
            {
                httpHandler.Proxy = @params.Proxy;
            }

            var httpClient = new HttpClient(httpHandler, true)
            {
                BaseAddress = @params.BaseAddress,
                Timeout     = @params.Timeout
            };

            foreach (var header in @params.DefaultRequestHeaders)
            {
                httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
            }
            return(httpClient);
        }
Пример #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WebDavClient"/> class.
        /// </summary>
        /// <param name="params">The parameters of the WebDAV client.</param>
        public WebDavClient(WebDavClientParams @params)
        {
            SetWebDavDispatcher(new WebDavDispatcher(ConfigureHttpClient(@params)));

            var lockResponseParser = new LockResponseParser();

            SetPropfindResponseParser(new PropfindResponseParser(lockResponseParser));
            SetProppatchResponseParser(new ProppatchResponseParser());
            SetLockResponseParser(lockResponseParser);
        }
Пример #3
0
        private static HttpClient ConfigureHttpClient(WebDavClientParams @params)
        {
            HttpMessageHandler httpMessageHandler = @params.HttpMessageHandler;

            if (httpMessageHandler == null)
            {
                var httpHandler = new HttpClientHandler();

                // Fixes for Blazor WASM
                if (!RuntimeUtils.IsBlazorWASM)
                {
                    httpHandler.UseDefaultCredentials = @params.UseDefaultCredentials;
                    httpHandler.PreAuthenticate       = @params.PreAuthenticate;
                    httpHandler.UseProxy = @params.UseProxy;

                    if (@params.Credentials != null)
                    {
                        httpHandler.Credentials = @params.Credentials;
                    }

                    if (@params.Proxy != null)
                    {
                        httpHandler.Proxy = @params.Proxy;
                    }
                }

                // Fix for Blazor WASM
                if (httpHandler.SupportsAutomaticDecompression)
                {
                    httpHandler.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
                }

                httpMessageHandler = httpHandler;
            }

            HttpClient httpClient;

            if (RuntimeUtils.IsBlazorWASM)
            {
                httpClient = new HttpClient
                {
                    BaseAddress = @params.BaseAddress,
                    Timeout     = @params.Timeout
                };
            }
            else
            {
                httpClient = new HttpClient(httpMessageHandler, true)
                {
                    BaseAddress = @params.BaseAddress,
                    Timeout     = @params.Timeout
                };
            }

            foreach (var header in @params.DefaultRequestHeaders)
            {
                httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
            }

            return(httpClient);
        }
Пример #4
0
 public WebDavClient([NotNull] WebDavClientParams @params) : this(ConfigureHttpClient(@params))
 {
     Check.NotNull(@params, nameof(@params));
 }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WebDavClient"/> class.
 /// </summary>
 /// <param name="params">The parameters of the WebDAV client.</param>
 public WebDavClient(WebDavClientParams @params)
 {
     Initialize(ConfigureHttpClient(@params));
 }