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

◆ ReadResponseContent()

int System.Net.Http.Http3RequestStream.ReadResponseContent ( HttpResponseMessage response,
Span< byte > buffer )
inlineprivate

Definition at line 967 of file Http3RequestStream.cs.

968 {
969 try
970 {
971 int num = 0;
972 while (buffer.Length != 0 && (_responseDataPayloadRemaining > 0 || ReadNextDataFrameAsync(response, CancellationToken.None).AsTask().GetAwaiter().GetResult()))
973 {
974 if (_recvBuffer.ActiveLength != 0)
975 {
976 int num2 = (int)Math.Min(buffer.Length, Math.Min(_responseDataPayloadRemaining, _recvBuffer.ActiveLength));
977 Span<byte> span = _recvBuffer.ActiveSpan;
978 span = span.Slice(0, num2);
980 num += num2;
982 _recvBuffer.Discard(num2);
983 buffer = buffer.Slice(num2);
984 if (_responseDataPayloadRemaining == 0L && _recvBuffer.ActiveLength == 0)
985 {
986 break;
987 }
988 continue;
989 }
990 int length = (int)Math.Min(buffer.Length, _responseDataPayloadRemaining);
991 int num3 = _stream.Read(buffer.Slice(0, length));
992 if (num3 == 0)
993 {
995 }
996 num += num3;
998 buffer = buffer.Slice(num3);
999 break;
1000 }
1001 return num;
1002 }
1003 catch (Exception ex)
1004 {
1006 return 0;
1007 }
1008 }
void CopyTo(KeyValuePair< TKey, TValue >[] array, int index)
async ValueTask< bool > ReadNextDataFrameAsync(HttpResponseMessage response, CancellationToken cancellationToken)
void HandleReadResponseContentException(Exception ex, CancellationToken cancellationToken)
override int Read(byte[] buffer, int offset, int count)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string net_http_invalid_response_premature_eof_bytecount
Definition SR.cs:98
Definition SR.cs:7

References System.Net.Http.Http3RequestStream._recvBuffer, System.Net.Http.Http3RequestStream._responseDataPayloadRemaining, System.Net.Http.Http3RequestStream._stream, System.buffer, System.Collections.Generic.Dictionary< TKey, TValue >.CopyTo(), System.SR.Format(), System.Net.Http.Http3RequestStream.HandleReadResponseContentException(), System.L, System.length, System.Math.Min(), System.SR.net_http_invalid_response_premature_eof_bytecount, System.Threading.CancellationToken.None, System.Net.Quic.QuicStream.Read(), and System.Net.Http.Http3RequestStream.ReadNextDataFrameAsync().

Referenced by System.Net.Http.Http3RequestStream.Http3ReadStream.Read().