当前位置: 首页 > 知识库问答 >
问题:

ASP.NET中的FeignClient配置

东郭腾
2023-03-14

我试图使用Spring-boot Java和SteelToe ASP.NET创建微服务

步骤1:我使用Java创建了一个完整的服务(一个带有UI和API的服务。它托管在PCF上)。API内部定义了ClassesControler。

namespace employee-client.Service
{
    public interface IRelayService
    {
        Task<HttpResponseMessage> getClassesList(string relativeUrl = "/api/v1/classes");
    }
}
namespace employee-client.Service
{
    public class RelayService : IRelayService
    {
        DiscoveryHttpClientHandler _handler;
        string _accessToken;

        private const string BASE_URL = "https://www.example.com";

        public QortaService(IDiscoveryClient client, string accessToken)
        {
            _handler = new DiscoveryHttpClientHandler(client);
            _accessToken = accessToken;
        }

        public async Task<HttpResponseMessage> getClassesList(string relativeUrl)
        {
            string classesUrl= BASE_URL + relativeUrl;

            HttpClient client = GetClient();
            HttpRequestMessage request = new HttpRequestMessage();
            request.RequestUri = new Uri(classesUrl);
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken);

            return await client.SendAsync(request, HttpCompletionOption.ResponseContentRead);
        }

        private HttpClient GetClient()
        {
            var client = new HttpClient(_handler, false);
            return client;
        }
    }
}

编辑:我修改了这个问题,使其更加清楚。流量的流动是从Java服务到.NET服务。.NET服务请求来自JAVA服务中的控制器的类列表(ClassesController.JAVA)

共有1个答案

齐栋
2023-03-14

我不清楚流量在您的场景中流向哪个方向,但我认为您是在说。NET应用程序试图调用Java应用程序。您使用的代码是HttpClientFactory引入之前的代码,比现在的代码要笨拙一些。Steeltoe可以与HttpClientFactory一起使用,以获得更好的整体体验。

如果您在应用程序配置中设置logging:loglevel:Steeltoe.common.discovery=true,Steeltoe提供了调试日志,以确认服务查找的结果。

您没有具体提到什么不起作用,但我猜您得到的是404,因为您的代码将创建一个类似https://fortuneservice/api/fortunes/random/api/v1/classes的请求路径

如果您正在.NET中寻找类似Feign的东西,可以试用Dhaven.faux

 类似资料:
  • 本文向大家介绍ASP.NET Core中的配置详解,包括了ASP.NET Core中的配置详解的使用技巧和注意事项,需要的朋友参考一下 ASP.NET Core 提供了一个灵活可扩展,基于键值的配置系统. 但是配置系统独立于ASP.NET Core是Microsoft.Extensions 类库的部分. 它可以用于任何类型的应用程序 1、以键-值对的形式读取配置 appsettings.json

  • 本文向大家介绍Asp.Net MVC中配置Serilog的方法,包括了Asp.Net MVC中配置Serilog的方法的使用技巧和注意事项,需要的朋友参考一下 一、Serilog介绍 Serilog 是一种非常简便记录log 的处理方式,使用Serilog可以生成本地的text文件, 也可以通过 Seq 来在Web界面中查看具体的log内容。 二、配置方法 接下来就简单的介绍一下在Asp.Net

  • 我无法为配置要使用的服务器列表。我使用的是Spring Cloud Netflix,但是这个特定的服务()没有在Eureka注册。因此,我需要在YML文件中为配置服务器列表。 但是,永远不会读取,因此操作失败,因为Faigns/Ribbon没有一个服务器可以使用。 我做错了什么? 我的假客户: 在引导中。yml: 如何在Spring Boot应用程序中配置Faigns客户端:

  • 我想使用一些Rest服务。以前我用过RestTemplate,但是现在我想知道SpringBoot FeignClient和WebClient的主要区别是什么?何时应该使用它们?

  • 本文向大家介绍asp.net core中灵活的配置方式详解,包括了asp.net core中灵活的配置方式详解的使用技巧和注意事项,需要的朋友参考一下 前言 asp.net core支持外部文件和命令行参数方式来配置系统运行所需要的配置信息,我们从下面两个常用场景来具体说下具体使用方法。 一、监听地址及端口配置 1,命令行方式 asp.net core系统通过命令行方式启动,使用的命令如下: do