在我的应用程序中,场景如下:我想从ASP.NET WEB API读取客户端请求的URL。
示例:
网页正在调用https://api.test.com/api/home/get/1 https://xxx.test.com/test.html方法。
请求的url https://xxx.test.com/test.html需要从web方法中读取。
下面的代码是返回IP地址。它没有返回域url。
// GET api/home/get/5
public string Get(int id)
{
return HttpContext.Current.Request.UserHostAddress;
}请推荐我。
提前谢谢。
发布于 2016-04-06 13:31:43
看看HttpContext.Current.Request.UrlReferrer.OriginalString吧。请注意,此数据是由客户端设置的,因此您不能相信它是100%准确的。
发布于 2016-04-06 13:24:59
试试这个:
string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx
string host = HttpContext.Current.Request.Url.Host;
// localhost发布于 2016-04-06 13:48:24
如果你在负载均衡器或其他反向代理之后,当请求HttpContext.Current.Request.UserHostAddress时,你不会得到客户端的IP,而是会得到负载均衡器的IP。在这种情况下,可以在HttpContext.Current.Request.Headers["X-Forwarded-For"]上查找浏览器的IP地址。请注意,如果你不是这些硬件的幕后黑手,这是一个很好的攻击载体。
https://stackoverflow.com/questions/36441863
复制相似问题