【发布时间】:2014-06-19 17:52:09
【问题描述】:
考虑以下代码,其中 BaseAddress 定义了部分 URI 路径。
using (var handler = new HttpClientHandler())
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://something.com/api");
var response = await client.GetAsync("/resource/7");
}
我希望这会对http://something.com/api/resource/7 执行GET 请求。但事实并非如此。
经过一番搜索,我找到了这个问题和答案:HttpClient with BaseAddress。建议将/ 放在BaseAddress 的末尾。
using (var handler = new HttpClientHandler())
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://something.com/api/");
var response = await client.GetAsync("/resource/7");
}
还是不行。这是文档:HttpClient.BaseAddress这里发生了什么?
【问题讨论】:
-
@ГеоргийЛанец 已经提出了反向复制。我专门写了这个问题,因为另一个问题的写法不是很容易被有同样问题的人发现,我在这里写了答案,因为那里的答案遗漏了一个重要的点。
-
但这个问题稍后再问
-
@ГеоргийЛанец 这不是它的工作原理。通常,最“规范”的问题是让重复项指向它的问题。另一个问题是关于用户遇到的单个问题,而不是像常见问题解答那样阅读。
-
@ГеоргийЛанец 另请注意,我在此问题中引用了其他问题,并解释了为什么其他问题和答案不足以解决问题。
标签: c# .net dotnet-httpclient