【发布时间】:2011-10-26 20:43:37
【问题描述】:
我有一个用作文件存储的 RESTful WCF 服务。由于可以有任意数量的目录和子目录,我试图让用户通过简单地将文件路径放入 URL 来访问它们。有没有一种方法可以在不需要用户对斜杠进行编码的情况下做到这一点?
例如,我想要的是一个Files/{path} 的URI 模板,可以像http://localhost:8000/Files/folder1/subfolder2/subfolder3/file.jpg 一样访问。
【问题讨论】:
-
“编码斜线”是什么意思?你能否提供一个例子:1)如果用户必须编码,他应该写什么,2)你想让他写什么,3)你想通过阅读用户输入得到什么结果。
-
对斜杠进行编码是必要的,因为否则服务会将斜杠解释为 URI 的一部分,而不是参数的一部分。对于前者,它将返回 404,因为它无法找到匹配的 URI 模板。使用编码,上面的示例 URL 将如下所示:
http://localhost:8000/Files%2Ffolder1%2Fsubfolder2%2Fsubfolder3%2Ffile.jpg