Handle exceptions thrown by HttpClient.GetAsync.

This commit is contained in:
Paul Chote
2022-04-23 11:41:25 +01:00
committed by abcdefg30
parent 6c81590b20
commit 0dbd8264b8
4 changed files with 30 additions and 24 deletions

View File

@@ -593,13 +593,14 @@ namespace OpenRA.Server
{
Task.Run(async () =>
{
var httpClient = HttpClientFactory.Create();
var httpResponseMessage = await httpClient.GetAsync(playerDatabase.Profile + handshake.Fingerprint);
var result = await httpResponseMessage.Content.ReadAsStreamAsync();
PlayerProfile profile = null;
try
{
var httpClient = HttpClientFactory.Create();
var httpResponseMessage = await httpClient.GetAsync(playerDatabase.Profile + handshake.Fingerprint);
var result = await httpResponseMessage.Content.ReadAsStreamAsync();
var yaml = MiniYaml.FromStream(result).First();
if (yaml.Key == "Player")
{

View File

@@ -40,6 +40,8 @@ namespace OpenRA.Mods.Common
{ "version", Game.ModData.Manifest.Metadata.Version }
}.ToString();
try
{
var client = HttpClientFactory.Create();
var httpResponseMessage = await client.GetAsync(queryURL);
@@ -54,6 +56,8 @@ namespace OpenRA.Mods.Common
}
Game.RunAfterTick(() => ModVersionStatus = status);
}
catch { }
});
}
}

View File

@@ -234,13 +234,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Log.Write("install", "Fetching mirrors from " + download.MirrorList);
Task.Run(async () =>
{
try
{
var client = HttpClientFactory.Create();
var httpResponseMessage = await client.GetAsync(download.MirrorList);
var result = await httpResponseMessage.Content.ReadAsStringAsync();
try
{
var mirrorList = result.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
downloadUrl(mirrorList.Random(new MersenneTwister()));
}

View File

@@ -343,16 +343,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Task.Run(async () =>
{
var games = new List<GameServer>();
var client = HttpClientFactory.Create();
var httpResponseMessage = await client.GetAsync(queryURL);
var result = await httpResponseMessage.Content.ReadAsStreamAsync();
List<GameServer> games = null;
activeQuery = true;
try
{
var client = HttpClientFactory.Create();
var httpResponseMessage = await client.GetAsync(queryURL);
var result = await httpResponseMessage.Content.ReadAsStreamAsync();
var yaml = MiniYaml.FromStream(result);
games = new List<GameServer>();
foreach (var node in yaml)
{
try