繁体   English   中英

包含 / 的 URL 参数的 HttpClient 编码

[英]HttpClient encoding of URL parameters containing a /

我正在使用 HttpClient (Dot Net 5) 并且我试图通过在 URL 中指定它的 id 来从 DotNetCore Web 服务中获取一个实体。

  • 如果 id 不包含任何需要编码的字符,它就可以工作。
  • 如果 id 包含斜杠 (/),则失败 (HTTP 404)。
    • Web 服务诊断确认请求未到达该方法。

Postman 或 Swagger 等其他客户端工作正常。

失败的例子:

string id = "Person/65-C";
var httpResponse = await httpClient.GetAsync(string.Format("/persons/{0}", System.Web.HttpUtility.UrlEncode(id)));

我建议你应该在你的服务器 api 中使用[HttpGet("persons/{**value}")]属性。

我的测试示例代码。

[HttpGet("persons/{**value}")]
public string test(string value)
{
    return "userid: = " + value;
}

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM