【发布时间】:2021-10-04 10:10:00
【问题描述】:
我有一个用 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。哪种方法更好?
【问题讨论】:
-
您不应该为每个控制器实例声明一个 HttpClient。见You're using HttpClient wrong and it's destabilizing your software。我推荐Flurl,而不是直接使用HttpClient,它可以为您解决其中的一些问题。然后,您可以通过方法参数或您想要获取该字符串的任何其他技术获取基本 URL。
-
感谢您的提示。我不知道 flurl,这似乎是一个很好的工具
标签: c# asp.net parameter-passing uri