M K*_* II 1 c# httpclient httprequest
我有一个 HttpClient (由 IHttpClientFactory 生成),其 BaseAddress 为“www.mydomain.com/3.0/”。我将使用不同的方法使用不同的路径来访问该客户端。所以我首先设置一个 HttpRequestMessage。我注意到这两个实现的行为不同。
这:
var message = new HttpRequestMessage(HttpMethod.Get, $"account-lookup/?query={email}")
{
Headers =
{
{ key, value }
}
};
Run Code Online (Sandbox Code Playgroud)
作品。但是这个:
var message = new HttpRequestMessage()
{
Method = HttpMethod.Get,
Headers =
{
{ key, value }
},
RequestUri = new Uri($"account-lookup/?query={email}")
};
Run Code Online (Sandbox Code Playgroud)
返回异常Invalid URI: The format of the URI could not be determined.
我们不能用这样的字符串创建一个新的 Uri,不是吗?为什么我们没有一个属性或方法来让我们传递路径字符串?我假设 HttpRequestMessage 的构造函数在内部将传递的属性附加或连接到 BaseAddress?
我可以/应该做类似的事情
RequestUri = new Uri(Client.BaseAddress + $"account-lookup/?query={email}")
,但是以某种方式附加路径字符串会很好。
您必须指定 URL 是相对的,才能与基地址组合:
var message = new HttpRequestMessage()
{
Method = HttpMethod.Get,
Headers = ...,
RequestUri = new Uri($"account-lookup/?query={email}", UriKind.Relative)
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |