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。所以不管你注入的时候放什么,实例化客户端。
我有以下方法:
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。所以不管你注入的时候放什么,实例化客户端。