diff --git a/StandardSocketsHttpHandler/Net/Http/Headers/HttpResponseTrailers.cs b/StandardSocketsHttpHandler/Net/Http/Headers/HttpResponseTrailers.cs new file mode 100644 index 0000000..aaf3ead --- /dev/null +++ b/StandardSocketsHttpHandler/Net/Http/Headers/HttpResponseTrailers.cs @@ -0,0 +1,8 @@ +#if NETSTANDARD2_0 +namespace System.Net.Http.Headers +{ + internal sealed class HttpResponseTrailers : HttpHeaders + { + } +} +#endif diff --git a/StandardSocketsHttpHandler/Net/Http/SocketsHttpHandler/Http2Stream.cs b/StandardSocketsHttpHandler/Net/Http/SocketsHttpHandler/Http2Stream.cs index 4060784..2920950 100644 --- a/StandardSocketsHttpHandler/Net/Http/SocketsHttpHandler/Http2Stream.cs +++ b/StandardSocketsHttpHandler/Net/Http/SocketsHttpHandler/Http2Stream.cs @@ -960,16 +960,23 @@ public async ValueTask ReadDataAsync(Memory buffer, HttpResponseMessa private void CopyTrailersToResponseMessage(HttpResponseMessage responseMessage) { -#if !NETSTANDARD2_0 if (_trailers != null && _trailers.Count > 0) { +#if !NETSTANDARD2_0 foreach (KeyValuePair trailer in _trailers) { responseMessage.TrailingHeaders.TryAddWithoutValidation(trailer.Key.Name, trailer.Value); } +#else + var headers = new HttpResponseTrailers(); + foreach (KeyValuePair trailer in _trailers) + { + headers.TryAddWithoutValidation(trailer.Key.Name, trailer.Value); + } + responseMessage.RequestMessage.Properties["__ResponseTrailers"] = headers; +#endif _trailers.Clear(); } -#endif } private async Task SendDataAsync(ReadOnlyMemory buffer, CancellationToken cancellationToken)