【问题标题】:Micronaut: how to set an HttpClient URL after injectionMicronaut:注入后如何设置 HttpClient URL
【发布时间】:2021-06-29 08:22:53
【问题描述】:

我有以下方法:


    public HttpResponse<String> sendMessage(@NonNull String url, @NonNull String message) {
            try (HttpClient client = HttpClient.create(new URL(url))) { ... }
    }

基本上,我想要实现的是使用作为方法参数的 URL 创建 HttpClient。它不能是配置文件中的属性,因为它取决于一些外部条件。 如果我检查 HttpClient.create() 方法的文档,它说它不应该在 Micronaut 环境中使用,而是应该注入客户端。但是,问题是如果它被注入,我无法使用我的自定义 URL 对其进行初始化。

另一个问题是,如果我用 HttpClient.create() 方法保留它,如果我想对类进行单元测试,我无法模拟 HttpClient。最好的选择是通过构造函数注入它以便能够创建测试。

我有什么选择?我一直无法找到这种类型的初始化。看起来每个人都使用修复 URL? ????

谢谢!

【问题讨论】:

    标签: java micronaut


    【解决方案1】:

    我会自己回答。显然,您可以在传递给 HttpClient 方法(检索、交换等)的请求中指定相对 URL 和完整 URL。所以注入时放什么都没关系,实例化客户端。

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 2020-11-04
      • 2023-02-24
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 2019-01-20
      相关资源
      最近更新 更多