1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 12:42:54 +08:00

Merge pull request #14045 from peppy/avoid-unnecessary-error-deserialisation

Avoid deserialisation JSON request content when error is not present (or not relevant)
This commit is contained in:
Dan Balasescu 2021-07-28 20:58:46 +09:00 committed by GitHub
commit 5144bf8354
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -171,9 +171,13 @@ namespace osu.Game.Online.API
WebRequest?.Abort();
// in the case of a cancellation we don't care about whether there's an error in the response.
if (!(e is OperationCanceledException))
{
string responseString = WebRequest?.GetResponseString();
if (!string.IsNullOrEmpty(responseString))
// naive check whether there's an error in the response to avoid unnecessary JSON deserialisation.
if (!string.IsNullOrEmpty(responseString) && responseString.Contains(@"""error"""))
{
try
{
@ -186,6 +190,7 @@ namespace osu.Game.Online.API
{
}
}
}
Logger.Log($@"Failing request {this} ({e})", LoggingTarget.Network);
pendingFailure = () => TriggerFailure(e);