private async Task <HttpRequestMessage> TransformRequest(FluentRequest fluentRequest) { var httpRequest = new HttpRequestMessage(); httpRequest.RequestUri = fluentRequest.RequestUri(); httpRequest.Method = fluentRequest.Method; // add serializer media type httpRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(Serializer.ContentType)); // copy headers foreach (var header in fluentRequest.Headers) { var values = header.Value.ToList(); httpRequest.Headers.Add(header.Key, values); } httpRequest.Content = await GetContent(fluentRequest).ConfigureAwait(false); // run request interceptors var context = new InterceptorRequestContext(this, fluentRequest) { HttpRequest = httpRequest }; foreach (var interceptor in Interceptors) { await interceptor.RequestAsync(context).ConfigureAwait(false); } return(context.HttpRequest ?? httpRequest); }