【问题标题】:Uri Rest resource name formatingUri Rest 资源名称格式
【发布时间】:2016-06-24 15:47:58
【问题描述】:

我正在尝试使用 GET 操作检索资源

资源如下图,资源由用户名定义 其中可以包含域信息。即var userName = @"Domain\myname" 我在重新格式化 Uri 时遇到问题

我尝试过的是 1.var resource = string.Format("/user/{0}/order", Uri.EscapeDataString(userName ));

  1. var resource = string.Format("/user/{0}/order", HttpUtility.UrlEncode(userName ));

我正在使用 .Net HttpClient 向后端发送数据,我收到一条错误消息,指出未找到端点。当我在调试器上查看调用时,我看到了端点 正在尝试被访问:user/Domain/myname/order

可以做什么,所以资源参数可以包含域'\' 字符

【问题讨论】:

  • 您是否知道Domain\myName 中的"\" 编译器将单个反斜杠视为转义字符.. 为什么不将用户名拆分为仅返回myname跨度>
  • 为了让逻辑起作用,我的用户名必须包含域名

标签: c# rest url uri dotnet-httpclient


【解决方案1】:

我不是 C# 人,所以我不知道答案[tm],但我可以告诉你一些要寻找的东西

  1. String.Format 很可能是工具包中的错误工具。您不是在尝试格式化字符串,而是在尝试格式化 URI。所以你应该寻找类似UriTemplate

  2. 您应该确保知道正确的结果是什么。这是由URI specification 的第一个附录定义的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2019-04-11
    相关资源
    最近更新 更多