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 APIsử dụng một loại khác với loại Requestthông thường MVC Requestđược gọi là HttpRequestMessagekhông bao gồm UrlReferrer. Vì một Web APIyê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 Requestbao 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();