• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# Http.DelegatingHandler类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中System.Net.Http.DelegatingHandler的典型用法代码示例。如果您正苦于以下问题:C# DelegatingHandler类的具体用法?C# DelegatingHandler怎么用?C# DelegatingHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DelegatingHandler类属于System.Net.Http命名空间,在下文中一共展示了DelegatingHandler类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: ConfigureRoute

        public MusicStoreBootStrap ConfigureRoute()
        {
            // List of delegating handlers.
            DelegatingHandler[] handlers = new DelegatingHandler[] { new AdminAuthorizationMessageHandler(new AdminUserQuery()) };

            // Create a message handler chain with an end-point.
            var routeHandlers = HttpClientFactory.CreatePipeline(
                new HttpControllerDispatcher(httpConfiguration), handlers);
            httpConfiguration.Routes.MapHttpRoute(
                name: "AdminRoutes",
                routeTemplate: "api/AdminUser/{user}",
                defaults: new { controller = "AdminUser", user = RouteParameter.Optional }
                , constraints: null
                , handler: routeHandlers);

            httpConfiguration.Routes.MapHttpRoute(
              name: "Inventory",
              routeTemplate: "api/Inventory/{id}",
              defaults: new { controller = "Inventory", id = RouteParameter.Optional }
              , constraints: null
              , handler: routeHandlers);

            httpConfiguration.Routes.MapHttpRoute(
             name: "ActionApi",
             routeTemplate: "api/{controller}/{action}/{id}",
             defaults: new { controller = "Product", id = RouteParameter.Optional });

            httpConfiguration.Routes.MapHttpRoute(
             name: "DefaultApi",
             routeTemplate: "api/{controller}/{id}",
             defaults: new { controller = "Product", id = RouteParameter.Optional });
            httpConfiguration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            return this;
        }
开发者ID:satish860,项目名称:MusicStoreAPI,代码行数:35,代码来源:MusicStoreBootStrap.cs


示例2: CreateHandler

 public DelegatingHandler CreateHandler(HttpConfiguration httpConfig, DelegatingHandler innerHandler = null)
 {
     return new CorsMessageHandler(this, httpConfig)
     {
         InnerHandler = innerHandler
     };
 }
开发者ID:rchern,项目名称:Thinktecture.IdentityModel.40,代码行数:7,代码来源:WebApiCorsConfiguration.cs


示例3: Register

        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            config.MessageHandlers.Add(new CustomHeaderHandler());

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            var handlers = new DelegatingHandler[]
            {
                new PreRouteMessageHandler()
            };
            var routeHandlers = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config), handlers);
            config.Routes.MapHttpRoute(
                name: "Route2",
                routeTemplate: "api1/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional },
                constraints: null,
                handler: routeHandlers
            );
            config.MessageHandlers.Add(new MethodOverrideHandler());
        }
开发者ID:g-srinivas,项目名称:Srini-WebApi,代码行数:28,代码来源:WebApiConfig.cs


示例4: PostForm

        internal async Task<dynamic> PostForm(
            IEnumerable<KeyValuePair<string, string>> formParameters,
            string path, DelegatingHandler[] handlers, IEnumerable<KeyValuePair<string, string>> headerParameters = null, bool shouldRetry = true)
        {
            using (var client = HttpClientFactory.Create(handlers == null
                        ? new DelegatingHandler[] { new UserAgentHandler() }
                        : handlers.ToArray()))
            {
                var uri = _baseAddress + path;
                var httpResponse =
                    await client.PostAsync(uri, new FormUrlEncodedContent(formParameters));

                try
                {
                    return await HandleResponse(httpResponse);
                }
                catch (UnauthorizedException)
                {
                    if (shouldRetry)
                    {
                        _credentials.ResetAccessToken();
                        using (var retryClient = HttpClientFactory.Create(await GetHandlers(headerParameters)))
                        {
                            httpResponse = await retryClient.PostAsync(uri, new FormUrlEncodedContent(formParameters));
                            return await HandleResponse(httpResponse);
                        } 
                    }
                    throw;
                }
            }
        }
开发者ID:CaseyMacPherson,项目名称:gettyimages-api_dotnet,代码行数:31,代码来源:WebHelper.cs


示例5: CreateEncryptedRoute

        private void CreateEncryptedRoute(HttpConfiguration configuration)
        {
            var section = (NameValueCollection)ConfigurationManager.GetSection("Api2CryptoGraphySettings");
            if (section == null)
            {
                throw new ApplicationException("Config section 'RestfulWebService' has not been set.");
            }

            // arrange.
            var settings = new CryptoGraphySettings(section);
            var cryptoHandler = new ServerCryptoHandler(settings.SecretKey, settings.InitialVector, settings.HashKey);
            var injection = new DelegatingHandler[] { new ServerMessageDumper(), cryptoHandler }; // dump decrypted request & plain response.
            var handler = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(configuration), injection);

            // register encrypted HTTP route.
            configuration.Routes.MapHttpRoute("Encrypted Route", "api2/{controller}/{action}", null, null, handler);

            // register timestamp as a route.
            var timestampProvider = new DefaultTimestampProvider(TimeSpan.FromMinutes(15)) as ITimestampProvider<string>;
            var timestampHandler = new HttpTimestampHandler<string>(timestampProvider);
            configuration.Routes.MapHttpRoute("Timestamp Route", "api3/!timestamp!/get", null, null, timestampHandler);

            // register global timestamp service, it should align with encrypted HTTP route or will not work.
            configuration.MessageHandlers.Add(new HttpTimestampHandler<string>(configuration, "api2/!timestamp!/get", timestampProvider));
        }
开发者ID:jacktsai,项目名称:ApiFoundation,代码行数:25,代码来源:Global.asax.cs


示例6: MessageHandlerTracer

        public MessageHandlerTracer(DelegatingHandler innerHandler, ITraceWriter traceWriter)
        {
            Contract.Assert(innerHandler != null);
            Contract.Assert(traceWriter != null);

            _innerHandler = innerHandler;
            _traceWriter = traceWriter;
        }
开发者ID:chrissimon-au,项目名称:aspnetwebstack,代码行数:8,代码来源:MessageHandlerTracer.cs


示例7: GetChains

 private IEnumerable<string> GetChains(DelegatingHandler handler)
 {
     yield return handler.GetType().FullName;
     var innerHander = handler.InnerHandler as DelegatingHandler;
     if (innerHander != null)
     {
         yield return innerHander.GetType().FullName;
     }
 }
开发者ID:BarlowDu,项目名称:WebAPI,代码行数:9,代码来源:DemoController.cs


示例8: RetryDelegatingHandler

 /// <summary>
 /// Initializes a new instance of the <see cref="RetryDelegatingHandler"/> class. 
 /// </summary>
 /// <param name="retryPolicy">Retry policy to use.</param>
 /// <param name="innerHandler">Inner http handler.</param>
 public RetryDelegatingHandler(RetryPolicy retryPolicy, DelegatingHandler innerHandler)
     : base(innerHandler)
 {
     if (retryPolicy == null)
     {
         throw new ArgumentNullException("retryPolicy");
     }
     RetryPolicy = retryPolicy;
 }
开发者ID:markcowl,项目名称:autorest,代码行数:14,代码来源:RetryDelegatingHandler.cs


示例9: CreateBatchRestClient

        protected override BatchServiceClient CreateBatchRestClient(string url, string accountName, string key, DelegatingHandler handler = default(DelegatingHandler))
        {
            // Add HTTP recorder to the BatchRestClient
            HttpMockServer mockServer = HttpMockServer.CreateInstance();
            mockServer.InnerHandler = new HttpClientHandler();

            BatchServiceClient restClient = base.CreateBatchRestClient(url, accountName, key, mockServer);

            return restClient;
        }
开发者ID:Azure,项目名称:azure-powershell,代码行数:10,代码来源:ScenarioTestContext.cs


示例10: RegisterEncryptedRoute

        private void RegisterEncryptedRoute(HttpConfiguration configuration, ITimestampProvider<string> timestampProvider)
        {
            // arrange.
            var cryptoHandler = new ServerCryptoHandler("secretKeyPassword", "initialVectorPassword", "hashKeyString", timestampProvider);
            var injection = new DelegatingHandler[] { new ServerMessageDumper(), cryptoHandler, new ServerMessageDumper() };
            var handler = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(configuration), injection);

            // register encrypted HTTP route.
            configuration.Routes.MapHttpRoute("Encrypted API", "api2/{controller}/{action}", null, null, handler);
        }
开发者ID:jacktsai,项目名称:ApiFoundation,代码行数:10,代码来源:EncryptedHttpRouteWrapper.cs


示例11: ExecuteRequest

            public HttpResponseMessage ExecuteRequest(DelegatingHandler testTarget, HttpRequestMessage requestMessage)
            {
                testTarget.InnerHandler = new OKHandler();
                InnerHandler = testTarget;

                var requestTask = SendAsync(requestMessage, new CancellationToken());

                requestTask.Wait(5000); // 5 second timeout - tests should be quicker than this, but better than infinite for now

                return requestTask.Result;
            }
开发者ID:aehyok,项目名称:WebAPIContrib,代码行数:11,代码来源:MessageHandlerTester.cs


示例12: BasicAuthenticationHandler

        public BasicAuthenticationHandler(DelegatingHandler innerChannel, IUserValidation userValidation, string realm)
            : base(innerChannel)
        {
            if (userValidation == null)
                throw new ArgumentNullException("userValidation");

            if (string.IsNullOrEmpty(realm))
                throw new ArgumentNullException("realm");

            this.userValidation = userValidation;
            this.realm = realm;
        }
开发者ID:ChrisMissal,项目名称:WcfWebApiContrib,代码行数:12,代码来源:BasicAuthenticationHandler.cs


示例13: GetHandlerChain

 /// <summary>
 /// 获得MyHttpServer牵头的HttpMessageHandler链
 /// </summary>
 /// <param name="handler"></param>
 /// <returns></returns>
 private IEnumerable<string> GetHandlerChain(DelegatingHandler handler)
 {
     yield return handler.GetType().Name;
     while (null != handler.InnerHandler)
     {
         yield return handler.InnerHandler.GetType().Name;
         handler = handler.InnerHandler as DelegatingHandler;
         if (null == handler)
         {
             break;
         }
     }
 }
开发者ID:chenboyi081,项目名称:asp-net-web-api-2-samples,代码行数:18,代码来源:DemoController.cs


示例14: ExecuteRequest

            public HttpResponseMessage ExecuteRequest(DelegatingHandler testTarget, HttpRequestMessage requestMessage)
            {
                testTarget.InnerHandler = new OKHandler();
                InnerHandler = testTarget;

                var requestTask = SendAsync(requestMessage, new CancellationToken());

                while (!requestTask.IsCompleted)
                {
                }

                return requestTask.Result;
            }
开发者ID:AlexZeitler,项目名称:WebAPIContrib,代码行数:13,代码来源:MessageHandlerTester.cs


示例15: Main

        static void Main(string[] args)
        {

            var baseAddress = "http://localhost:8080";
            HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(baseAddress);
           // config.MessageHandlers.Add(new ProgressMessageHandler() { });


            // Web API 路由
            config.MapHttpAttributeRoutes();

            //全局允许CROS
            // config.EnableCors();//启用跨域


            config.Routes.MapHttpRoute
           (
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
            );
            config.MaxConcurrentRequests = 1000;
            var handlers = new DelegatingHandler[] { new PassiveAuthenticationMessageHandler(), new HttpServer() };
            var routeHandlers = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config), handlers);
            config.Routes.MapHttpRoute(
                   name: "CustomerRouter",
                  routeTemplate: "MyAPI/{Controller}/{Action}/Id",
                  defaults: new { Id = RouteParameter.Optional },
                  constraints: null,
                  handler: routeHandlers
                );
            HttpSelfHostServer server = new HttpSelfHostServer(config);
            server.OpenAsync();


            TaskManager.Instance.Initialize();
            TaskManager.Instance.Start();
           DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler(server);

            Console.WriteLine("Server  http://localhost:8080   Open now ....at {0}..", server.Configuration.VirtualPathRoot);
            config.EnsureInitialized();
            foreach (var route in config.Routes)
            {
                System.Diagnostics.Debug.WriteLine(route);
            }

            Console.ReadLine();

        }
开发者ID:wjkhappy14,项目名称:aspnetwebstack,代码行数:49,代码来源:Program.cs


示例16: HttpServerWrapper

        internal HttpServerWrapper(string baseAddress)
        {
            var configuration = new HttpSelfHostConfiguration(baseAddress);

            // arrange.
            var injection = new DelegatingHandler[] { new ServerMessageDumper() };
            var handler = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(configuration), injection);

            // register HTTP route.
            configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{action}", null, null, handler);

            // startup local HTTP server.
            this.inner = new HttpSelfHostServer(configuration);
            this.inner.OpenAsync().Wait();

            this.configuration = configuration;
        }
开发者ID:jacktsai,项目名称:ApiFoundation,代码行数:17,代码来源:HttpServerWrapper.cs


示例17: CreateHttpClient

        /// <summary>
        /// Creates an <see cref="HttpClient"/>
        /// </summary>
        /// <param name="primaryHandlers">The handlers that will be added to the top of the chain.</param>
        public virtual HttpClient CreateHttpClient(params DelegatingHandler[] primaryHandlers)
        {
            var delegateHandlers = new DelegatingHandler[]
            {
                new AuthenticationHandler(cloudCredentials: credentials),
                new UserAgentHandler(headerValues: headerValues),
                new TracingHandler(),
                new RetryHandler(),
            };

            var pipeline = (HttpMessageHandler)(new HttpClientHandler());
            var reversedHandlers = primaryHandlers.CoalesceEnumerable().Concat(delegateHandlers).ToArray().Reverse();
            foreach (var handler in reversedHandlers)
            {
                handler.InnerHandler = pipeline;
                pipeline = handler;
            }

            return new HttpClient(pipeline);
        }
开发者ID:shuainie,项目名称:azure-powershell,代码行数:24,代码来源:HttpClientHelper.cs


示例18: OnCreate

        /// <summary>
        /// Creates an instance of an <see cref="HttpMessageHandler"/> using the HTTP message handlers
        /// provided in the constructor.
        /// </summary>
        /// <param name="innerChannel">The inner channel represents the destination of the HTTP message channel.</param>
        /// <returns>The HTTP message channel.</returns>
        protected virtual HttpMessageHandler OnCreate(HttpMessageHandler innerChannel)
        {
            if (innerChannel == null)
            {
                throw FxTrace.Exception.ArgumentNull("innerChannel");
            }

            // Get handlers either by constructing types or by calling Func
            IEnumerable<DelegatingHandler> handlerInstances = null;
            try
            {
                if (_handlerFunc != null)
                {
                    handlerInstances = _handlerFunc.Invoke();
                    if (handlerInstances != null)
                    {
                        foreach (DelegatingHandler handler in handlerInstances)
                        {
                            if (handler == null)
                            {
                                throw FxTrace.Exception.Argument("handlers", SR.Format(SR.DelegatingHandlerArrayFromFuncContainsNullItem, s_delegatingHandlerType.Name, GetFuncDetails(_handlerFunc)));
                            }
                        }
                    }
                }
                else if (_handlerCtors != null)
                {
                    DelegatingHandler[] instances = new DelegatingHandler[_handlerCtors.Length];
                    for (int cnt = 0; cnt < _handlerCtors.Length; cnt++)
                    {
                        instances[cnt] = (DelegatingHandler)_handlerCtors[cnt].Invoke(Array.Empty<Type>());
                    }

                    handlerInstances = instances;
                }
            }
            catch (TargetInvocationException targetInvocationException)
            {
                throw FxTrace.Exception.AsError(targetInvocationException);
            }

            // Wire handlers up
            HttpMessageHandler pipeline = innerChannel;
            if (handlerInstances != null)
            {
                foreach (DelegatingHandler handler in handlerInstances)
                {
                    if (handler.InnerHandler != null)
                    {
                        throw FxTrace.Exception.Argument("handlers", SR.Format(SR.DelegatingHandlerArrayHasNonNullInnerHandler, s_delegatingHandlerType.Name, "InnerHandler", handler.GetType().Name));
                    }

                    handler.InnerHandler = pipeline;
                    pipeline = handler;
                }
            }

            return pipeline;
        }
开发者ID:SoumikMukherjeeDOTNET,项目名称:wcf,代码行数:65,代码来源:HttpMessageHandlerFactory.cs


示例19: WithHandler

 /// <summary>
 /// Get an instance of the AlertsClient class that uses the handler while initiating web requests.
 /// </summary>
 /// <param name="handler">the handler</param>
 public override AutoscaleClient WithHandler(DelegatingHandler handler)
 {
     return WithHandler(new AutoscaleClient(), handler);
 }
开发者ID:ApplicationGateway,项目名称:azure-sdk-for-net,代码行数:8,代码来源:AutoscaleClient.Customization.cs


示例20: CreateBatchRestClient

        protected virtual BatchServiceClient CreateBatchRestClient(string url, string accountName, string key, DelegatingHandler handler = default(DelegatingHandler))
        {
            ServiceClientCredentials credentials = new Microsoft.Azure.Batch.Protocol.BatchSharedKeyCredential(accountName, key);

            BatchServiceClient restClient = handler == null ? new BatchServiceClient(new Uri(url), credentials) : new BatchServiceClient(new Uri(url), credentials, handler);

            restClient.HttpClient.DefaultRequestHeaders.UserAgent.Add(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.UserAgentValue);

            restClient.SetRetryPolicy(null); //Force there to be no retries
            restClient.HttpClient.Timeout = Timeout.InfiniteTimeSpan; //Client side timeout will be set per-request

            return restClient;
        }
开发者ID:brnleehng,项目名称:azure-powershell,代码行数:13,代码来源:BatchAccountContext.cs



注:本文中的System.Net.Http.DelegatingHandler类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Http.FormUrlEncodedContent类代码示例发布时间:2022-05-26
下一篇:
C# Http.ByteArrayContent类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap