【问题标题】:Special chars in REST-RouteREST-Route 中的特殊字符
【发布时间】:2019-06-14 21:59:34
【问题描述】:

我有一个 REST-Source,它是 localhost/admin/users/{userName},但我的用户有一个 '.'在里面,所以我不能通过它。

我的问题是如何通过 REST-API 传递特殊字符?

我试图逃避 '.'使用 %2E 但 Firefox 的 RESTed 扩展告诉我该路由不存在。

        [HttpGet]
        [Route("users/{userName}")]
        public User GetUser(string userName)
        {
            // some logig here

            return new User(userName);
        }

我希望找到一种方法来逃避这些字符:-/

【问题讨论】:

  • 这只是一个 URL。 REST 是一组原则,而不是规范或协议。您的问题只是“如何对字符串进行 URL 编码”? server 代码不需要做任何事情。 客户端代码需要对username参数进行URL编码

标签: c# rest url asp.net-web-api


【解决方案1】:

如果 URL 包含点 .,您可以在 URL 后面添加斜杠 /

localhost/admin/users/{userName}/

API 看到 . 并认为您正在尝试访问文件。添加尾部斜杠应该可以解决此问题。

【讨论】:

  • 好的,所以在这种情况下,如果我有一个 API 的参数介于 localhost/admin/{config}/all 之间,那么 '.' 就没有问题?
  • 我已经针对我的 API 对其进行了测试,它可以工作,但您需要针对自己的 API 和配置对其进行测试以确保。
猜你喜欢
  • 2012-01-16
  • 2019-06-28
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
相关资源
最近更新 更多