本地主机:8080 ?/ API/V1 /用户/鲍勃/ reset_password EMAIL_ADDRESS = 鲍勃%40bob.com
然后其他时间,我得到: 本地主机:8080/API/V1 /用户/鲍勃/ reset_password EMAIL_ADDRESS = 鲍勃%2540bob.com
在第二个的@已被编码一次,40%则%又被编码为%25所以你最终%2540
如果我什么都不做多等一下问题就消失了,这让我觉得这是某种缓存问题,但我似乎无法弄清楚它是什么。
本地主机:8080 ?/ API/V1 /用户/鲍勃/ reset_password EMAIL_ADDRESS = 鲍勃%40bob.com
然后其他时间,我得到: 本地主机:8080/API/V1 /用户/鲍勃/ reset_password EMAIL_ADDRESS = 鲍勃%2540bob.com
在第二个的@已被编码一次,40%则%又被编码为%25所以你最终%2540
如果我什么都不做多等一下问题就消失了,这让我觉得这是某种缓存问题,但我似乎无法弄清楚它是什么。
终于被确认为一个错误,并在以后的版本中得到修复
因为这不排除所有的时间我不知道这是否会帮助,但你尝试编码的网址?例如: org.apache.commons.httpclient.util.URIUtil.encodeAll(url);
我认为发生的事情是,当您第一次将符号作为符号发送时调用控制器。
然后将其编码到响应中并将@转换为%40。我猜你什么时候回来,并且通过浏览器重新发送,%40中的%被编码为%25,使其成为%2540。
对不起,如果上面有混淆,很难解释。
简单的答案是,在将它传递到WS类之前,只需将%40的emailAddress变量替换为@即可。在play框架中还有一个urlDecode()方法可以实现,我之前使用过play,但是我没有使用这个方法。
我怀疑某种形式的URL重写。你有没有在你的服务器前运行的Apache Web服务器?也许一些RewriteRule
缺少[NE]
标志。
您可以尝试在http://groups.google.com/group/play-framework上询问它们是否响应很快...... – opensas 2011-04-04 02:52:26
已经做了,没有回应 – dstarh 2011-04-04 03:22:49