mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2026-01-16 08:25:28 +00:00
Rewrite WebBrowser errors logic, again
Maybe THIS TIME after 7 years it'll finally do what I need from it. TL;DR, if anybody is insane enough to return client/server errors, and expects HtmlDocument or other Object to actually be null, it must be explicitly specified now with allow, to work like 200-OK, where we return only stuff that actually parses
This commit is contained in:
@@ -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<T>(response);
|
||||
if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) {
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (response.StatusCode.IsClientErrorCode()) {
|
||||
if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) {
|
||||
return new ObjectResponse<T>(response);
|
||||
if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) {
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (response.StatusCode.IsServerErrorCode()) {
|
||||
if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) {
|
||||
return new ObjectResponse<T>(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<TResult>(response);
|
||||
if (!requestOptions.HasFlag(ERequestOptions.ReturnRedirections)) {
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (response.StatusCode.IsClientErrorCode()) {
|
||||
if (requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) {
|
||||
return new ObjectResponse<TResult>(response);
|
||||
if (!requestOptions.HasFlag(ERequestOptions.ReturnClientErrors)) {
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (response.StatusCode.IsServerErrorCode()) {
|
||||
if (requestOptions.HasFlag(ERequestOptions.ReturnServerErrors)) {
|
||||
return new ObjectResponse<TResult>(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));
|
||||
|
||||
Reference in New Issue
Block a user