· 6 years ago · Oct 11, 2019, 05:04 AM
1protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
2{
3 string apikey = HttpUtility.ParseQueryString(request.RequestUri.Query).Get("apikey");
4
5 if (string.IsNullOrWhiteSpace(apikey)) {
6 return SendError("You can't use the API without the key.", HttpStatusCode.Forbidden);
7 } else {
8 return base.SendAsync(request, cancellationToken);
9 }
10}
11
12private Task<HttpResponseMessage> SendError(string error, HttpStatusCode code)
13{
14 var response = new HttpResponseMessage();
15 response.Content = new StringContent(error);
16 response.StatusCode = code;
17
18 return Task<HttpResponseMessage>.Factory.StartNew(() => response);
19}