Vì Google đưa bạn đến bài đăng này khi tìm kiếm C# Web API Referrer
đây là thỏa thuận: Web API
sử dụng một loại khác với loại Request
thông thường MVC Request
được gọi là HttpRequestMessage
không bao gồm UrlReferrer
. Vì một Web API
yêu cầu thông thường không bao gồm thông tin này, nếu bạn thực sự cần nó, bạn phải yêu cầu khách hàng của mình cố gắng đưa nó vào. Mặc dù bạn có thể biến điều này thành một phần của mình API Object
, nhưng cách tốt hơn là sử dụng Headers
.
Trước tiên, bạn có thể mở rộng HttpRequestMessage
để cung cấp một UrlReferrer()
phương pháp:
public static string UrlReferrer(this HttpRequestMessage request)
{
return request.Headers.Referrer == null ? "unknown" : request.Headers.Referrer.AbsoluteUri;
}
Sau đó, khách hàng của bạn cần phải đặt Referrer Header
để họ API Request
:
// Microsoft.AspNet.WebApi.Client
client.DefaultRequestHeaders.Referrer = new Uri(url);
Và bây giờ Web API Request
bao gồm dữ liệu liên kết giới thiệu mà bạn có thể truy cập như thế này từ Web API
:
Request.UrlReferrer();