c# - 如何动态定义 HttpClient BaseAdress
问题描述
我有一个用 c# 编写的 Asp.Net 网页。此网页正在与服务器上的主机通信。服务器地址实际上在我的控制器方法中硬编码为
static PatientController()
{
//Create the HttpClient once and use it
_httpClient = new HttpClient();
_httpClient.BaseAddress = new Uri("http://localhost:9002/prom2etheus/v1/");
_patientList = new List<Patient>();
}
如何将 URI 配置为用户可以在 UI 开始时输入的参数?我的问题是,主机在服务器上运行,而我的 UI 在同一台服务器上运行,但在 Docker 容器中。所以主机的IP可以改变,我不想在我的控制器方法中硬编码主机的IP。哪种方法更好?
解决方案
这取决于。如果您希望 url 保持不变,那么将其存储在数据库或文件中是一个好主意。
另一方面,如果每次应用程序启动时都提示用户是可以的,它可以存储在内存中。这将带来额外的好处,因为没有 IO,所以读/写会快得多。也可能有其他存储选项,例如第三方存储提供。在这两种情况下,您都必须考虑线程安全。
推荐阅读
- python - pandas groupby 并为各自的总数聚合两列,然后计算比率 - 总结摘要
- xamarin - CustomRenderer iOS for button TouchUpInside 改变背景
- python-3.x - 有没有办法覆盖 Aptana Studio 3 PyDev 折叠代码?
- javascript - 通过选择不同的选项更改边距
- opc-ua - OPC UA 客户端 MonitoredDataItem - 什么是 MonitoredDataItem MonitoringMode.Reporting 与 MonitoringMode.Sampling?
- facebook - 内容丰富的图片未在 Facebook 应用内浏览器中显示
- c++ - 使用 std::bind 将 QTimer::singleShot 传递给 std::async
- sql - PLSQL函数不会返回员工姓名作为参数传入的薪水
- reactjs - 更新子中的父状态对象并将该对象发送回父
- python - 重复使用 Python 手动输入繁琐的类似文本