uri模板中的百分比编码

时间:2014-02-11 17:28:00

标签: templates escaping uri

在uri-template语法中,扩展用大括号表示。返回模板化链接时,url-encode(即百分比编码)是不正确的,例如在API响应中?

http://foo.example.com/users/{?user_id}

http://foo.example.com/users/%7B?user_id%7D

似乎该标准的这一段可能是相关的,并表明它们必须被转义,但我不确定:

http://tools.ietf.org/html/rfc6570#section-1.2

  

默认表达式类型是简单的字符串扩展,      其中单个命名变量被其值替换为字符串      在pct编码之后,任何不在未保留URI集合中的字符      字符

1 个答案:

答案 0 :(得分:1)

是的,如果意图是将字符串用作URI模板而不是URI,则对URL模板令牌进行URL编码是不正确的。请记住,URI模板在扩展之前不是URI。如果对它们进行编码,则可以将其视为URI而不是模板。我为Java维护Handy URI Templates处理器,它将无法处理这样的编码令牌,并将字符串视为URI。希望有所帮助。