. net Uri(字符串地址)错误
本文关键字:错误 地址 字符串 Uri net | 更新日期: 2023-09-27 18:10:03
我有URL:
http://localhost:8128/WCF8bcPgServices/EventService/Event/GETPLS/station=E2SKGR&secondstation=%2fE2SKGR
类Uri转换URL为:
http://localhost:8128/WCF8bcPgServices/EventService/Event/GETPLS/station=E2SKGR&secondstation=/E2SKGR
调用构造函数
new Uri("http://localhost:8128/WCF8bcPgServices/EventService/Event/GETPLS/station=E2SKGR&secondstation=%2fE2SKGR", true)
没有影响为什么类Uri将%2f转换为字符'/'?
两者100%等同。
实际上,只有在路径中使用字符'/'时才需要将其编码为%2f
(在&
&号之前)。在&
&符号之后使用(在查询字符串中)没有歧义,因此可以以未转义的格式使用。Uri
类很聪明,知道这一点,因此删除了在原始url中应用的不必要的转义。
您正在创建明显的错误行为,不转义url中的所有字符。或者您在原始url的某个地方省略了?
字符,或者您需要对url中的保留字符进行编码以消除歧义。
%2f实际上表示'/'。在asciitable中,您可以看到,2f对应于'/'字符。
百分比编码是自动发生的
这似乎已经过时了:
构造函数已弃用。请使用新的Uri(字符串)。dontEscape参数已弃用,且始终为false。http://go.microsoft.com/fwlink/?linkid=14202
请参阅文档。
编辑:如果仍然需要访问传递给构造函数的完整字符串并避免自动转换,则可以使用Uri属性。