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

◆ ReadResponseContentAsync()

async ValueTask< int > System.Net.Http.Http3RequestStream.ReadResponseContentAsync ( HttpResponseMessage response,
Memory< byte > buffer,
CancellationToken cancellationToken )
inlineprivate

Definition at line 1010 of file Http3RequestStream.cs.

1011 {
1012 _ = 1;
1013 try
1014 {
1015 int totalBytesRead = 0;
1016 while (buffer.Length != 0)
1017 {
1018 bool flag = _responseDataPayloadRemaining <= 0;
1019 bool flag2 = flag;
1020 if (flag2)
1021 {
1023 }
1024 if (flag2)
1025 {
1026 break;
1027 }
1028 if (_recvBuffer.ActiveLength != 0)
1029 {
1030 int num = (int)Math.Min(buffer.Length, Math.Min(_responseDataPayloadRemaining, _recvBuffer.ActiveLength));
1031 Span<byte> span = _recvBuffer.ActiveSpan;
1032 span = span.Slice(0, num);
1033 span.CopyTo(buffer.Span);
1034 totalBytesRead += num;
1036 _recvBuffer.Discard(num);
1037 buffer = buffer.Slice(num);
1038 if (_responseDataPayloadRemaining == 0L && _recvBuffer.ActiveLength == 0)
1039 {
1040 break;
1041 }
1042 continue;
1043 }
1044 int length = (int)Math.Min(buffer.Length, _responseDataPayloadRemaining);
1046 if (num2 == 0)
1047 {
1049 }
1052 buffer = buffer.Slice(num2);
1053 break;
1054 }
1055 return totalBytesRead;
1056 }
1057 catch (Exception ex)
1058 {
1060 return 0;
1061 }
1062 }
void CopyTo(KeyValuePair< TKey, TValue >[] array, int index)
async ValueTask< bool > ReadNextDataFrameAsync(HttpResponseMessage response, CancellationToken cancellationToken)
void HandleReadResponseContentException(Exception ex, CancellationToken cancellationToken)
override Task< int > ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
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.cancellationToken, 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.Net.Quic.QuicStream.ReadAsync(), and System.Net.Http.Http3RequestStream.ReadNextDataFrameAsync().

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