HttpRequest.UrlReferrer does not appear to exist

I have a web application which uses MVC4, but now realised it really should be a Web API and as such I'm moving over to a ASP.NET 4.5.2 web API 2 project.

The problem is, where I was using Request.ServerVariables[] in my MVC project I have been advised that it's not the 'correct' way in a Web API, as such, I should be using Request.RequestUrl

The example on the MSDN is simply

 Uri MyUrl = Request.UrlReferrer;  //kaboom for me
 Response.Write("Referrer URL Port: " + Server.HtmlEncode(MyUrl.Port.ToString()) + "<br>");
 Response.Write("Referrer URL Protocol: " + Server.HtmlEncode(MyUrl.Scheme) + "<br>");

The issue is, despite referencing System.Web there is no property for Request are UrlReferrer - the only properties are Content, Headers, Method, Properties, RequestUri and Version. Why can't I use Request.UrlReferrer as per the MSDN example?

Jon Skeet
people
quotationmark

I suspect you just need to get the current request in a different way, due to being in a static method rather than in a context where you can refer to a Request instance property:

var request = HttpContext.Current;
var referrer = request.UrlReferrer;
...

people

See more on this question at Stackoverflow