Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ OnHeader() [1/2]

void System.Net.Http.Http2Connection.Http2Stream.OnHeader ( HeaderDescriptor descriptor,
ReadOnlySpan< byte > value )
inlineprivate

Definition at line 864 of file Http2Connection.cs.

865 {
866 if (System.Net.NetEventSource.Log.IsEnabled())
867 {
868 Trace(descriptor.Name + ": " + Encoding.ASCII.GetString(value), "OnHeader");
869 }
870 AdjustHeaderBudget(descriptor.Name.Length + value.Length);
872 {
873 if (_responseProtocolState == ResponseProtocolState.Aborted || _responseProtocolState == ResponseProtocolState.ExpectingIgnoredHeaders)
874 {
875 return;
876 }
877 if (_responseProtocolState != ResponseProtocolState.ExpectingHeaders && _responseProtocolState != ResponseProtocolState.ExpectingTrailingHeaders)
878 {
879 if (System.Net.NetEventSource.Log.IsEnabled())
880 {
881 Trace("Received header before status.", "OnHeader");
882 }
883 throw new HttpRequestException(System.SR.net_http_invalid_response);
884 }
886 if (_responseProtocolState == ResponseProtocolState.ExpectingTrailingHeaders)
887 {
888 string headerValue = descriptor.GetHeaderValue(value, valueEncoding);
889 _trailers.TryAddWithoutValidation(((descriptor.HeaderType & HttpHeaderType.Request) == HttpHeaderType.Request) ? descriptor.AsCustomHeader() : descriptor, headerValue);
890 }
891 else if ((descriptor.HeaderType & HttpHeaderType.Content) == HttpHeaderType.Content)
892 {
893 string headerValue2 = descriptor.GetHeaderValue(value, valueEncoding);
895 }
896 else
897 {
900 }
901 }
902 }
bool TryAddWithoutValidation(string name, string? value)
void Trace(string message, [CallerMemberName] string memberName=null)
readonly HttpConnectionPool _pool
string GetResponseHeaderValueWithCaching(HeaderDescriptor descriptor, ReadOnlySpan< byte > value, Encoding valueEncoding)
HeaderEncodingSelector< HttpRequestMessage > _responseHeaderEncodingSelector
HttpContentHeaders Headers
static readonly System.Net.NetEventSource Log
static string net_http_invalid_response
Definition SR.cs:92
Definition SR.cs:7
static Encoding ASCII
Definition Encoding.cs:511
string GetHeaderValue(ReadOnlySpan< byte > headerValue, Encoding valueEncoding)

References System.Net.Http.Http2Connection.Http2Stream._connection, System.Net.Http.Http2Connection._pool, System.Net.Http.Http2Connection.Http2Stream._request, System.Net.Http.Http2Connection.Http2Stream._response, System.Net.Http.HttpConnectionSettings._responseHeaderEncodingSelector, System.Net.Http.Http2Connection.Http2Stream._responseProtocolState, System.Net.Http.Http2Connection.Http2Stream._trailers, System.Net.Http.Http2Connection.Http2Stream.AdjustHeaderBudget(), System.Text.Encoding.ASCII, System.Net.Http.Headers.HeaderDescriptor.AsCustomHeader(), System.Net.Http.HttpResponseMessage.Content, System.Net.Http.Headers.HeaderDescriptor.GetHeaderValue(), System.Net.Http.HttpConnectionBase.GetResponseHeaderValueWithCaching(), System.Net.Http.HttpContent.Headers, System.Net.Http.HttpResponseMessage.Headers, System.Net.Http.Headers.HeaderDescriptor.HeaderType, System.Net.NetEventSource.Log, System.Net.Http.Headers.HeaderDescriptor.Name, System.SR.net_http_invalid_response, System.Net.Http.HttpConnectionPool.Settings, System.Net.Http.Http2Connection.Http2Stream.SyncObject, System.Net.Http.Http2Connection.Http2Stream.Trace(), System.Net.Http.Headers.HttpHeaders.TryAddWithoutValidation(), and System.value.

Referenced by System.Net.Http.Http2Connection.Http2Stream.OnHeader(), System.Net.Http.Http2Connection.Http2Stream.OnStaticIndexedHeader(), and System.Net.Http.Http2Connection.Http2Stream.OnStaticIndexedHeader().