GetResponseHeaderCharBufferLength() private static method

Returns the size of the char array buffer.
private static GetResponseHeaderCharBufferLength ( Interop.WinHttp.SafeWinHttpHandle requestHandle, uint infoLevel ) : int
requestHandle Interop.WinHttp.SafeWinHttpHandle
infoLevel uint
return int
コード例 #1
0
        private void ReadResponseTrailers()
        {
            // Only load response trailers if:
            // 1. WINHTTP_QUERY_FLAG_TRAILERS is supported by the OS
            // 2. HTTP/2 or later (WINHTTP_QUERY_FLAG_TRAILERS does not work with HTTP/1.1)
            // 3. Response trailers not already loaded
            if (!WinHttpTrailersHelper.OsSupportsTrailers || _responseMessage.Version < WinHttpHandler.HttpVersion20 || _readTrailingHeaders)
            {
                return;
            }

            _readTrailingHeaders = true;

            var bufferLength = WinHttpResponseParser.GetResponseHeaderCharBufferLength(_requestHandle, isTrailingHeaders: true);

            if (bufferLength != 0)
            {
                char[] trailersBuffer = ArrayPool <char> .Shared.Rent(bufferLength);

                try
                {
                    WinHttpResponseParser.ParseResponseTrailers(_requestHandle, _responseMessage, trailersBuffer);
                }
                finally
                {
                    ArrayPool <char> .Shared.Return(trailersBuffer);
                }
            }
        }