Micronaut:注入后如何设置 HttpClient URL

Micronaut: how to set an HttpClient URL after injection

我有以下方法:


    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() 方法一起使用,如果我想对 class 进行单元测试,我将无法模拟 HttpClient。最好的选择是通过构造函数注入它以便能够创建测试。

我有什么选择?我一直没能找到这种类型的初始化。貌似大家都在用修复URL?

谢谢!

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