2011-07-15 62 views
1

即时尝试把一个金塔,如下所示urn:test.project:123,作为url的一部分。 在“urn%3atest.project%3a123”中编码“urn:test.project:123”并在接收端将其解码回“urn:test.project:123”是否有意义?%%是一个有效的url字符

http://{domain}/abc/urn%3atest.project%3a123/Manifest 

回答

2

是的,这是一个有效的字符。这是URL的转义字符,与< &是xml/html的转义字符的方式类似,而反斜杠\是类似c语言中的字符串文字的转义字符。这是一个(非常重要的)字符,允许您指定(通过转义序列)所有其他字符不会在URL中有效。

(是的,是有意义的编码这样的字符串,它是一个合法的URL,并作为@PaulPRO提到,大多数框架会自动在服务器端进行解码它。)

+0

“HTTP:/ /localhost:4502/Person/urn%3atest.project%3a123/Manifest“im试图打这个网址,但iis返回HTTP错误404 - 错误的请求。我正在创建一个REST api,其中“rn%3atest.project%3a123”将是一个urn – Eatdoku

+0

@Eatdoku,许多框架将不允许在路径部分中具有转义序列的URL(与查询字符串部分相反)的网址。你使用什么后端作为服务器框架? –

+0

它是IIS 7.5,运行.NET与OpenRasta/WCF – Eatdoku

1

是的,%3A意味着3A是十六进制编码值“:” 如果你把它的URL为%3A服务器将最有可能自动解码。

相关问题