我有一个页面,我在这样的参数中收到一个网址:
www.example.com?url=www.myurl.com?urlparameter1=hey
问题在于,当我尝试检索参数“url”时,我只收到“www.myurl.com”而不是“www.myurl.com?urlparameter1=hey”。接收网址的最佳方式是,提取整个网址并删除www.example.com还是有更有效的方式?
答案 0 :(得分:6)
您需要对您的URL参数进行URL编码,否则它将被视为单独的查询字符串参数。
使用HttpUtility.UrlEncode。
执行此操作:string urlParameter = HttpUtility.UrlEncode(“www.myurl.com?urlparameter1=hey”);
那会给你:www.myurl.com%3furlparameter1%3dhey
http://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx
答案 1 :(得分:2)
我不相信这是一个合法的网址(虽然我确信它会在大多数情况下都有用)...你还没有像''那样对你的角色进行过网络编码。和参数中的'='。理想情况下,您可以使用HttpServerUtility.UrlEncode来执行此操作,如果您是生成这些URL的人。
...但如果由于某些原因你不能这样做,你可能不得不像你提到的那样,通过从整个网址手动提取它们来推出自己的解决方案。
答案 2 :(得分:1)
参数和页面用“?”分隔,但后续参数用“&”分隔。如果您手动创建该查询字符串,请进行修复。
如果您打算将问号和等号作为URL参数值的一部分,则应对其进行网址编码。