コード例 #1
0
ファイル: FluentClient.cs プロジェクト: faygan/FluentRest
        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);
        }