From 1d6399d7f4649472333da946669ce9f1fa349b89 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sun, 5 Nov 2023 18:17:11 +0100 Subject: Cleanup, fixes, fix proxy support --- LibMatrix/Extensions/HttpClientExtensions.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'LibMatrix/Extensions') diff --git a/LibMatrix/Extensions/HttpClientExtensions.cs b/LibMatrix/Extensions/HttpClientExtensions.cs index 5bb0dc2..913864e 100644 --- a/LibMatrix/Extensions/HttpClientExtensions.cs +++ b/LibMatrix/Extensions/HttpClientExtensions.cs @@ -53,11 +53,21 @@ public class MatrixHttpClient : HttpClient { Console.WriteLine(e); } - var a = await base.SendAsync(request, cancellationToken); - if (a.IsSuccessStatusCode) return a; + HttpResponseMessage responseMessage; + try { + responseMessage = await base.SendAsync(request, cancellationToken); + } + catch (Exception e) { + typeof(HttpRequestMessage).GetField("_sendStatus", BindingFlags.NonPublic | BindingFlags.Instance) + ?.SetValue(request, 0); + await Task.Delay(2500); + return await SendAsync(request, cancellationToken); + } + + if (responseMessage.IsSuccessStatusCode) return responseMessage; //error handling - var content = await a.Content.ReadAsStringAsync(cancellationToken); + var content = await responseMessage.Content.ReadAsStringAsync(cancellationToken); if (content.Length == 0) throw new MatrixException() { ErrorCode = "M_UNKNOWN", -- cgit 1.4.1