作为自定义登录页面的一部分,我试图获取可能代表绝对或相对URL的URL字符串的查询字符串部分。如果它是绝对URL,我可以使用Uri.Query属性,但相对URL不支持。
是否像从第一个实例开始获取子字符串一样简单?'?'或者URL是否可以在查询字符串之前包含问号?或者可以在查询字符串之后出现任何其他文本吗?
returnUrl.Substring(returnUrl.IndexOf('?'))
其中returnUrl可能是绝对的:"http://www.example.com/anydir/any-page1?param=1"
或相对的:"/anydir/any-page?param=1"
答案 0 :(得分:0)
只有URL中的第一个问号才有意义指示查询字符串的开头。之后被视为文字问号。
请参阅RFC 3986 3.4和3.3
但确实注意到:
允许使用字符斜杠(“/”)和问号(“?”) 表示片段标识符内的数据。要小心一些 较旧的,错误的实现可能无法正确处理此数据 当它被用作相对引用的基本URI时