示例#1
0
        private async Task <HttpRequestMessage> CreateRequest(IHttpBuilderContext context)
        {
            var request = new HttpRequestMessage(context.Method, context.Uri);

            if (context.ContentFactory != null)
            {
                request.Content = await context.ContentFactory?.Invoke(context);
            }

            _clientBuilder.ApplyRequestHeaders(request);

            // if we haven't added an accept header, add a default
            if (!string.IsNullOrWhiteSpace(context.MediaType))
            {
                request.Headers.Accept.AddDistinct(h => h.MediaType, context.MediaType);
            }

            if (context.AutoDecompression)
            {
                request.Headers.AcceptEncoding.AddDistinct(h => h.Value, "gzip");
                request.Headers.AcceptEncoding.AddDistinct(h => h.Value, "deflate");
                request.Headers.AcceptEncoding.AddDistinct(h => h.Value, "identity");
            }

            return(request);
        }