【发布时间】:2010-11-13 03:42:34
【问题描述】:
我制作了一个 Spring REST 应用程序,您可以在其中基于 POST、PUT、GET、DELETE 的 HTTP 方法执行 CRUD 操作。我有
的典型 URI 模板http://host/root/{id}/{name}/{address} and etc.
我们有一个正在访问此 REST 服务的客户端。显然他们正在以以下形式发送多字名称和地址的参数:
http://host/root/11/John+Smith/10+Las+Vegas+USA
他们使用基于 application/x-www-form-urlencoded 类型的 HTML 编码方案。根据维基百科的文章
应用程序/x-www-form-urlencoded 输入
默认使用的编码是基于 在一个非常早期的通用版本上 URI 百分比编码规则,带有 修改次数,例如 换行规范化和替换 空格用“+”代替“%20”。 - http://en.wikipedia.org/wiki/Percent-encoding
然而,标准的 URL 编码方案似乎是使用 %20 替换 URI 模板中的空格。哪一个是正确的?
我的 Spring REST 自动将 %20 转换为空格。它被正确解释。我正在使用 Spring 3.0.4。当我的 REST 服务遇到 + 时,它会按原样接受。当然当我把validation放到exclude +的时候,确实如预期的那样被排除了。
我是符合标准还是有这样的双重标准?还是客户使用的是古老的方案?
【问题讨论】: