Ocelot参考文章

详细教程 教程来自其它网站,具体内容比较详细可自行观看。

项目中遇到的坑:
Ocelot版本问题:
Ocelot.Responder.Middleware.ResponderMiddleware[0]
requestId: 0HMB63EMRT6LG:00000002, previousRequestId: no previous request id, message: Error Code: UnableToFindDownstreamRouteError Message: Failed to match Route configuration for upstream path: /, verb: GET. errors found in ResponderMiddleware. Setting error response for request path:/, request method: GET

解决方法:
在这里插入图片描述
转载自:http://letyouknow.net/ocelot/index.html。请多多支持原文!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ocelot 提供了 AddDelegatingHandler 方法,用于在 Ocelot 网关中添加委托处理程序(Delegating Handler)。Delegating Handler 是一个用于处理 HTTP 请求和响应的中间件,类似于 ASP.NET Core 中的中间件,但是它是基于委托模式实现的,可以实现更加灵活的请求处理逻辑。 使用 AddDelegatingHandler 方法可以将自定义的委托处理程序添加到 Ocelot 网关中,比如用于鉴权、请求重试等。AddDelegatingHandler 方法的用法如下: ```csharp public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddOcelot().AddDelegatingHandler<MyDelegatingHandler>(); } ``` 其中,MyDelegatingHandler 是自定义的委托处理程序,需要继承 Ocelot.DelegatingHandler.DelegatingHandlerBase 类,并实现其中的 SendAsync 方法。SendAsync 方法是处理 HTTP 请求和响应的核心方法,可以在其中实现自定义的请求处理逻辑。 以下是一个自定义的委托处理程序的示例代码: ```csharp public class MyDelegatingHandler : DelegatingHandlerBase { public MyDelegatingHandler() { } public override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // 在此处实现自定义的请求处理逻辑 // ... // 调用下一个处理程序 var response = await base.SendAsync(request, cancellationToken); // 在此处实现自定义的响应处理逻辑 // ... return response; } } ``` 在 SendAsync 方法中,您可以实现自定义的请求处理逻辑,如鉴权、请求重试等,并调用 base.SendAsync 方法调用下一个处理程序。在下一个处理程序调用后,您还可以实现自定义的响应处理逻辑,如统计请求响应时间等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值