Beispiel #1
0
        public string Format(IRestRequest request)
        {
            var httpRequest = request.AsHttpRequestMessage(client);
            var httpVersion = httpRequest.Version.ToString(2);
            var uri         = httpRequest.RequestUri;
            var host        = $"{uri.Host}{(uri.Port != HttpDefaultPort ? uri.Port.ToString() : String.Empty)}";

            var sb = new StringBuilder();

            using (var writer = new StringWriter(sb)) {
                writer.WriteLine($"{httpRequest.Method} {uri.PathAndQuery} / HTTP/{httpVersion}");
                writer.WriteLine($"Host: {host}");

                if (request.HasHeaders())
                {
                    writer.WriteLine();

                    foreach (var header in request.Headers())
                    {
                        writer.WriteLine($"{header.Key}: {SafeHeaderValue(client, header.Value)}");
                    }
                }

                if (httpRequest.Content != null)
                {
                    WriteContent(writer, httpRequest.Content);
                }

                writer.Flush();
            }

            return(sb.ToString());
        }