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

◆ SendAsync()

async Task< HttpResponseMessage > System.Net.Http.Http2Connection.SendAsync ( HttpRequestMessage request,
bool async,
CancellationToken cancellationToken )
inline

Definition at line 3115 of file Http2Connection.cs.

3116 {
3117 if (System.Net.NetEventSource.Log.IsEnabled())
3118 {
3119 Trace($"{request}", "SendAsync");
3120 }
3121 try
3122 {
3123 bool mustFlush = request.Content != null && request.HasHeaders && request.Headers.ExpectContinue == true;
3125 bool flag = request.Content != null && request.Content.AllowDuplex;
3126 CancellationToken cancellationToken2 = (flag ? CancellationToken.None : cancellationToken);
3127 Task requestBodyTask = http2Stream.SendRequestBodyAsync(cancellationToken2);
3128 Task responseHeadersTask = http2Stream.ReadResponseHeadersAsync(cancellationToken);
3129 bool flag2 = requestBodyTask.IsCompleted || !flag;
3130 bool flag3 = flag2;
3131 if (!flag3)
3132 {
3134 }
3135 if (flag3 || requestBodyTask.IsCompleted || http2Stream.SendRequestFinished)
3136 {
3137 try
3138 {
3140 }
3141 catch (Exception value)
3142 {
3143 if (System.Net.NetEventSource.Log.IsEnabled())
3144 {
3145 Trace($"Sending request content failed: {value}", "SendAsync");
3146 }
3148 throw;
3149 }
3150 }
3151 else
3152 {
3154 }
3156 return http2Stream.GetAndClearResponse();
3157 }
3158 catch (Exception ex)
3159 {
3160 if (ex is IOException || ex is ObjectDisposedException || ex is Http2ProtocolException || ex is InvalidOperationException)
3161 {
3162 throw new HttpRequestException(System.SR.net_http_client_execution_error, ex);
3163 }
3164 throw;
3165 }
3166 }
async ValueTask< Http2Stream > SendHeadersAsync(HttpRequestMessage request, CancellationToken cancellationToken, bool mustFlush)
override void Trace(string message, [CallerMemberName] string memberName=null)
static readonly System.Net.NetEventSource Log
static string net_http_client_execution_error
Definition SR.cs:58
Definition SR.cs:7
static Task< Task > WhenAny(params Task[] tasks)
Definition Task.cs:3642

References System.cancellationToken, System.Net.NetEventSource.Log, System.Net.Http.HttpConnectionBase.LogExceptions(), System.SR.net_http_client_execution_error, System.Net.Http.Http2Connection.SendHeadersAsync(), System.Net.Http.Http2Connection.Trace(), System.value, and System.Threading.Tasks.Task< TResult >.WhenAny().