【问题标题】:Groovy REST URL mapping containing forward slashes包含正斜杠的 Groovy REST URL 映射
【发布时间】:2015-03-13 06:10:54
【问题描述】:

我在 Groovy on Grails 中有一个 REST 服务;获取数据并对其进行转换的基本服务。它工作正常,除非传入的数据有正斜杠或反斜杠。在这些情况下,浏览器会尝试根据数据导航到目录:

localhost/traverse/map/321 64 第四 localhost/traverse/map/321/64/fourth

我的网址映射:

"map/$id" (controller: "map", action: "transform", formats=['text/plain'], method: "GET")

我的控制器。除了类声明和类导入之外,没有其他事情发生:

def transform = {
  //println params.id
  if (param.id) {
    DataMap dm = new DataMap();
    render dm.hostNodeLookup(params.id)
  }
}

将传递给 REST 服务的大部分数据都有斜杠,每个“传入的数据”的斜杠数量会从 1 到 N 不等,但我无法弄清楚如何转义/解析/其他明智的解决这个问题。我已经阅读了on this site,但我发现它对这个问题没有太大帮助。

我无权访问 Web 服务器来调整编码或浏览器如何呈现 URL 映射和字符串。数据没有到达控制器,所以我无法解析那里的字符串。有人有想法吗?

【问题讨论】:

    标签: rest url groovy mapping grails-2.0


    【解决方案1】:

    在阅读this post 之后,我试了一下,效果很好。

    在 urlmapping 文件中,我将这个 ** 添加到 id 变量中:

    "map/$id**" (controller: "map", action: "transform", formats=['text/plain'], method: "GET")
    

    【讨论】:

      猜你喜欢
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 2011-05-21
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多