zoukankan      html  css  js  c++  java
  • [译]Ocelot

    原文

    可以为HttpClient添加delegating handlers。

    Usage

    为了添加delegating handler需要做两件事。

    首先如下一样创建一个类。

    public class FakeHandler : DelegatingHandler
    {
        protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            //do stuff and optionally call the base handler..
            return await base.SendAsync(request, cancellationToken);
        }
    }
    

    然后必须将这个handler添加到Ocelot的容器里面:

    services.AddOcelot()
            .AddDelegatingHandler<FakeHandler>()
            .AddDelegatingHandler<FakeHandlerTwo>()
    

    这些Add模仿都有一个默认的参数(默认为false)用来表示是否作用于全局。如果使用的是默认的false的话,那么这个DelegatingHandler是专门针对ocelot.json里面指定的一个ReRoute的。如果为true的话,那么将作用于所有的ReRoute。

    services.AddOcelot()
            .AddDelegatingHandler<FakeHandler>(true)
    
    "DelegatingHandlers": [
        "FakeHandlerTwo",
        "FakeHandler"
    ]
    

    你可以有多个DelegatingHandlers。它们运行的顺序如下:

    • 全局的handler以添加到服务的顺序作为运行顺序,而不是以在ocelot.json中DelegatingHandlers的数组顺序
    • 非全局的handler以在ocelot.json中DelegatingHandlers的数组顺序作为运行顺序
    • Tracing DelegatingHandler。如果启用了的话
    • QoS DelegatingHandler。如果启用了的话
    • The HttpClient sends the HttpRequestMessage.
  • 相关阅读:
    按不同通道加载不同弹幕数据的实现方法
    webpack手动配置Vue项目
    flex布局是什么?
    npm packson.json介绍
    npm使用介绍
    Vue路由机制
    VUE双向绑定原理
    常用API接口汇总
    C# MVC权限验证
    C# 正则表达式大全
  • 原文地址:https://www.cnblogs.com/irocker/p/ocelot-delegatinghandlers.html
Copyright © 2011-2022 走看看