【问题标题】:WebAPI get request parameters being UrlDecoded at the controllerWebAPI 获取在控制器处被 UrlDecoded 的请求参数
【发布时间】:2016-10-18 16:15:30
【问题描述】:

我有一个问题,我向 WebAPI 控制器发出 GET,本质上是:

$.getJSON('/api/feefo/getproductfeedback?id='+ encodeURIComponent(skuNum))

我正在使用encodeURIComponentskuNum 参数进行url 编码,在开发工具中查看请求我得到了需要编码的skuNum 的预期结果:

skuNum 已按预期从1000EF+ 变为1000EF%2B

但是,当我在 WebAPI 控制器中查看 id 参数时,它是通过未编码的:

就好像客户端 url 编码正在以某种方式被撤消,谁能解释这里发生了什么?显然我可以通过在控制器中进行编码来解决这个问题,但我想了解为什么会发生这种情况。

【问题讨论】:

  • 这是设计使然。默认情况下,API 框架将解码 URL 编码参数。编码只能用于传输数据。一旦在服务器上,开发人员就不必处理必须对其进行解码(横切关注)。按预期使用值。
  • @Nkosi 谢谢,我猜是有道理的。随意添加这个作为答案,它可能会帮助其他人。

标签: c# web-services asp.net-web-api urlencode


【解决方案1】:

这是设计使然。默认情况下,API 框架将解码 URL 编码参数。编码只能用于传输数据。一旦在服务器上,开发人员就不必处理必须对其进行解码(横切关注)。按预期使用值。

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多