【发布时间】:2018-05-15 01:47:34
【问题描述】:
我编写了一个实用程序类函数,它接收一个 URI 和一个 ID,该 ID 使用提供的 URI 创建一个 HTTPClient。
private async Task<T> GetUriScopedResource<T>(string uri, int id)
{
var client = _httpClientFactory.CreateClient(_baseUri);
client.BaseAddress = new Uri(_baseUri);
var result = await client.GetAsync($"{uri}{id}");
return await DeserialiseContentAsync<T>(result);
}
以上目前设置为期望动态参数位于 uri 的末尾。
例如。
"api/Employee/{id}"
但是我的要求发生了变化,我有一个如下所示的控制器方法:
"api/Employee/{id}/accounts"
如何修改
client.GetAsync($"{relativeUri}{id}");
为所提供的任何 URI 动态替换 {X}? URIBuilder 能实现这个期望的功能吗?
任何帮助都会很棒!
【问题讨论】:
-
也在想,可能需要处理多个传入函数的参数。例如,URI 可以是“api/Employee/{id}/accountsettings/{accountId}”
-
如果 uri 总是在变化,你将不得不手动构建它,可能是带有
{0){1}的预定义 url 并使用 string.Format 来填充它们
标签: c# .net dynamic uri dotnet-httpclient