获取用户在浏览器中输入的确切URL
我想获得用户输入浏览器的确切url。 当然我总是可以使用像Request.Url.ToString()
这样的东西但是在下列情况下这不能给我我想要的东西:
https://www.mysite.com/rss
使用上面的URL, Request.Url.ToString()
会给我的是:
https://www.mysite.com/rss/Default.aspx
有谁知道怎么做到这一点?
我已经尝试过了:
编辑:您希望HttpWorkerRequest.GetServerVariable()
具有密钥HTTP_URL
或CACHE_URL
。 请注意,IIS 5和IIS 6之间的行为有所不同(请参阅密钥文档)。
为了能够访问所有服务器变量(如果你得到null
),直接访问HttpWorkerRequest:
HttpWorkerRequest workerRequest = (HttpWorkerRequest)((IServiceProvider)HttpContext.Current) .GetService(typeof(HttpWorkerRequest));
还要记住,“用户输入的确切URL”可能永远不会在服务器上可用。 从手指到服务器的链中的每个链接都可以稍微修改请求。
例如,如果我在浏览器窗口中键入xheo.com,IE将自动转换为https://www.xheo.com 。 然后,当请求到达IIS时,它会向浏览器说 – 您确实需要https://www.xheo.com/Default.aspx上的默认页面。 因此浏览器通过询问默认页面来响应。
HTTP 30x重定向请求也会发生同样的事情。 服务器可能只会看到浏览器发出的最终请求。
尝试使用Request.Url.OriginalString
可能会给你你想要的东西。
Request.RawUrl
我想是你追求的猴子……
最简单的方法是使用客户端编程来提取确切的URL:
有可能,您只需要组合请求对象中的一些值来重建输入的确切URL:
Dim pageUrl As String = String.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Host, Request.RawUrl) Response.Write(pageUrl)
输入地址https://yousite.com/?hello完全返回:
上述就是C#学习教程:获取用户在浏览器中输入的确切URL分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
https://yousite.com/?hello
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1041841.html