java - Micronaut:注入后如何设置 HttpClient 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() 方法保留它,如果我想对类进行单元测试,我无法模拟 HttpClient。最好的选择是通过构造函数注入它以便能够创建测试。
我有什么选择?我一直无法找到这种类型的初始化。看起来每个人都使用修复 URL?
谢谢!
解决方案
我会自己回答。显然,您可以在传递给HttpClient
方法(检索、交换等)的请求中指定相对 URL 和完整 URL。所以注入时放什么都没关系,实例化客户端。
推荐阅读
- javascript - 我怎么能把它放在以防万一?
- node.js - 将 React App 部署到 heroku 无法连接后端
- delphi - 从链接的 DBEdit 在 TDateTimePicker 中设置时间
- java - 我有一种从 String[] 中删除空值的方法,我怎样才能为该函数创建一个方法,然后再调用它?爪哇
- javascript - 哪个性能更好,通过 JSON.stringify 保存对文本的剩余响应或将响应转换为文本?
- java - 序列化与实现
- python - matplotlib(anaconda)更新问题
- python - 如何根据列表的长度将包含列表的字典分成相等的部分
- r - 在R中的多元回归中找到样条回归的系数
- r - 如何将字符串匹配映射到具有缺失值的二维数据集中的变量