我正在尝试使用 HttpClient 创建具有以下 Uri 的 GET 请求:
http://test.com?action=enterorder&ordersource=acme&resid=urn%3Auuid%3A0c5eea50-9116-414e-8628-14b89849808d 如您所见,resid 参数用 %3A 转义,即“:”字符。
当我在 HttpClient 请求中使用这个 Uri 时,url 变为:
http://test.com?action=enterorder&ordersource=acme&resid=urn:uuid:0c5eea50-9116-414e-8628-14b89849808d我收到来自服务器的错误,因为预期 %3A。
任何人都知道在发送请求时如何保存逃逸的 Uri 吗?似乎 HttpClient 在发送之前总是在字符串上未转义字符。这是使用的代码:
Uri uri = new Uri("http://test.com?action=enterorder&ordersource=acme&resid=urn%3Auuid%3A0c5eea50-9116-414e-8628-14b89849808d");
using (HttpClient client = new HttpClient())
{
var resp = client.GetAsync(uri);
if (resp.Result.IsSuccessStatusCode)
{
var responseContent = resp.Result.Content;
string content = responseContent.ReadAsStringAsync().Result;
}
}