Beispiel #1
0
        /// <summary>
        /// Registers an HTTP request interception, replacing any existing registration.
        /// </summary>
        /// <param name="builder">The <see cref="HttpRequestInterceptionBuilder"/> to use to create the registration.</param>
        /// <returns>
        /// The current <see cref="HttpClientInterceptorOptions"/>.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="builder"/> is <see langword="null"/>.
        /// </exception>
        public HttpClientInterceptorOptions Register(HttpRequestInterceptionBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            HttpInterceptionResponse interceptor = builder.Build();

            ConfigureMatcherAndRegister(interceptor);

            return(this);
        }
Beispiel #2
0
        /// <summary>
        /// Deregisters an existing HTTP request interception, if it exists.
        /// </summary>
        /// <param name="builder">The HTTP interception to deregister.</param>
        /// <returns>
        /// The current <see cref="HttpClientInterceptorOptions"/>.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="builder"/> is <see langword="null"/>.
        /// </exception>
        /// <remarks>
        /// If <paramref name="builder"/> has been reconfigured since it was used
        /// to register a previous HTTP request interception it will not remove that
        /// registration. In such cases, use <see cref="Clear"/>.
        /// </remarks>
        public HttpClientInterceptorOptions Deregister(HttpRequestInterceptionBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            HttpInterceptionResponse interceptor = builder.Build();

            string key = BuildKey(interceptor);

            _mappings.Remove(key);

            return(this);
        }
        /// <summary>
        /// Registers an HTTP request interception, replacing any existing registration.
        /// </summary>
        /// <param name="builder">The <see cref="HttpRequestInterceptionBuilder"/> to use to create the registration.</param>
        /// <returns>
        /// The current <see cref="HttpClientInterceptorOptions"/>.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="builder"/> is <see langword="null"/>.
        /// </exception>
        public HttpClientInterceptorOptions Register(HttpRequestInterceptionBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            HttpInterceptionResponse interceptor = builder.Build();

            string key = BuildKey(interceptor.Method, interceptor.RequestUri);

            _mappings[key] = interceptor;

            return(this);
        }