diff --git a/ArchiSteamFarm/Steam/Integration/ArchiWebHandler.cs b/ArchiSteamFarm/Steam/Integration/ArchiWebHandler.cs index e95eddb7d..4b5aae909 100644 --- a/ArchiSteamFarm/Steam/Integration/ArchiWebHandler.cs +++ b/ArchiSteamFarm/Steam/Integration/ArchiWebHandler.cs @@ -173,7 +173,7 @@ public sealed class ArchiWebHandler : IDisposable { await Task.Delay(rateLimitingDelay).ConfigureAwait(false); } - response = await UrlGetToJsonObjectWithSession(request, requestOptions: WebBrowser.ERequestOptions.ReturnServerErrors, rateLimitingDelay: rateLimitingDelay).ConfigureAwait(false); + response = await UrlGetToJsonObjectWithSession(request, requestOptions: WebBrowser.ERequestOptions.ReturnServerErrors | WebBrowser.ERequestOptions.AllowInvalidBodyOnErrors, rateLimitingDelay: rateLimitingDelay).ConfigureAwait(false); if (response == null) { throw new HttpRequestException(string.Format(CultureInfo.CurrentCulture, Strings.ErrorObjectIsNull, nameof(response))); @@ -427,7 +427,7 @@ public sealed class ArchiWebHandler : IDisposable { ObjectResponse? response = null; for (byte i = 0; (i < WebBrowser.MaxTries) && (response == null); i++) { - response = await UrlPostToJsonObjectWithSession(request, data: data, referer: referer, requestOptions: WebBrowser.ERequestOptions.ReturnServerErrors).ConfigureAwait(false); + response = await UrlPostToJsonObjectWithSession(request, data: data, referer: referer, requestOptions: WebBrowser.ERequestOptions.ReturnServerErrors | WebBrowser.ERequestOptions.AllowInvalidBodyOnErrors).ConfigureAwait(false); if (response == null) { return (false, mobileTradeOfferIDs); @@ -1292,7 +1292,7 @@ public sealed class ArchiWebHandler : IDisposable { ObjectResponse? response = null; for (byte i = 0; (i < WebBrowser.MaxTries) && (response == null); i++) { - response = await UrlPostToJsonObjectWithSession(request, data: data, referer: referer, requestOptions: WebBrowser.ERequestOptions.ReturnServerErrors).ConfigureAwait(false); + response = await UrlPostToJsonObjectWithSession(request, data: data, referer: referer, requestOptions: WebBrowser.ERequestOptions.ReturnServerErrors | WebBrowser.ERequestOptions.AllowInvalidBodyOnErrors).ConfigureAwait(false); if (response == null) { return (false, false); @@ -1329,7 +1329,7 @@ public sealed class ArchiWebHandler : IDisposable { { "ajax", "true" } }; - ObjectResponse? response = await UrlPostToJsonObjectWithSession(request, data: data, requestOptions: WebBrowser.ERequestOptions.ReturnClientErrors | WebBrowser.ERequestOptions.ReturnServerErrors).ConfigureAwait(false); + ObjectResponse? response = await UrlPostToJsonObjectWithSession(request, data: data, requestOptions: WebBrowser.ERequestOptions.ReturnClientErrors | WebBrowser.ERequestOptions.ReturnServerErrors | WebBrowser.ERequestOptions.AllowInvalidBodyOnErrors).ConfigureAwait(false); if (response == null) { return (EResult.Fail, EPurchaseResultDetail.Timeout); diff --git a/ArchiSteamFarm/Web/WebBrowser.cs b/ArchiSteamFarm/Web/WebBrowser.cs index 7d684b50c..ad5276cd8 100644 --- a/ArchiSteamFarm/Web/WebBrowser.cs +++ b/ArchiSteamFarm/Web/WebBrowser.cs @@ -140,27 +140,21 @@ public sealed class WebBrowser : IDisposable { await using (response.ConfigureAwait(false)) { if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new BinaryResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new BinaryResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new BinaryResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } if (response.Content == null) { @@ -256,27 +250,21 @@ public sealed class WebBrowser : IDisposable { await using (response.ConfigureAwait(false)) { if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new HtmlDocumentResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new HtmlDocumentResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new HtmlDocumentResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } if (response.Content == null) { @@ -328,27 +316,21 @@ public sealed class WebBrowser : IDisposable { await using (response.ConfigureAwait(false)) { if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new ObjectResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new ObjectResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new ObjectResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } if (response.Content == null) { @@ -420,27 +402,21 @@ public sealed class WebBrowser : IDisposable { } if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new StreamResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new StreamResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new StreamResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } return new StreamResponse(response, await response.Content.ReadAsStreamAsync().ConfigureAwait(false)); @@ -476,27 +452,21 @@ public sealed class WebBrowser : IDisposable { } if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new BasicResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new BasicResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new BasicResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } return new BasicResponse(response); @@ -532,27 +502,21 @@ public sealed class WebBrowser : IDisposable { } if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new BasicResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new BasicResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new BasicResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } return new BasicResponse(response); @@ -590,27 +554,21 @@ public sealed class WebBrowser : IDisposable { await using (response.ConfigureAwait(false)) { if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new HtmlDocumentResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new HtmlDocumentResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new HtmlDocumentResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } if (response.Content == null) { @@ -662,27 +620,21 @@ public sealed class WebBrowser : IDisposable { await using (response.ConfigureAwait(false)) { if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new ObjectResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new ObjectResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new ObjectResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } if (response.Content == null) { @@ -754,27 +706,21 @@ public sealed class WebBrowser : IDisposable { } if (response.StatusCode.IsRedirectionCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { - return new StreamResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) { + break; } - - break; } if (response.StatusCode.IsClientErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { - return new StreamResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) { + break; } - - break; } if (response.StatusCode.IsServerErrorCode()) { - if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { - return new StreamResponse(response); + if (!requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) { + continue; } - - continue; } return new StreamResponse(response, await response.Content.ReadAsStreamAsync().ConfigureAwait(false));