Handle exceptions thrown by HttpClient.GetAsync.
This commit is contained in:
@@ -593,13 +593,14 @@ namespace OpenRA.Server
|
|||||||
{
|
{
|
||||||
Task.Run(async () =>
|
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;
|
PlayerProfile profile = null;
|
||||||
|
|
||||||
try
|
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();
|
var yaml = MiniYaml.FromStream(result).First();
|
||||||
if (yaml.Key == "Player")
|
if (yaml.Key == "Player")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,20 +40,24 @@ namespace OpenRA.Mods.Common
|
|||||||
{ "version", Game.ModData.Manifest.Metadata.Version }
|
{ "version", Game.ModData.Manifest.Metadata.Version }
|
||||||
}.ToString();
|
}.ToString();
|
||||||
|
|
||||||
var client = HttpClientFactory.Create();
|
try
|
||||||
|
|
||||||
var httpResponseMessage = await client.GetAsync(queryURL);
|
|
||||||
var result = await httpResponseMessage.Content.ReadAsStringAsync();
|
|
||||||
|
|
||||||
var status = ModVersionStatus.Latest;
|
|
||||||
switch (result)
|
|
||||||
{
|
{
|
||||||
case "outdated": status = ModVersionStatus.Outdated; break;
|
var client = HttpClientFactory.Create();
|
||||||
case "unknown": status = ModVersionStatus.Unknown; break;
|
|
||||||
case "playtest": status = ModVersionStatus.PlaytestAvailable; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Game.RunAfterTick(() => ModVersionStatus = status);
|
var httpResponseMessage = await client.GetAsync(queryURL);
|
||||||
|
var result = await httpResponseMessage.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
|
var status = ModVersionStatus.Latest;
|
||||||
|
switch (result)
|
||||||
|
{
|
||||||
|
case "outdated": status = ModVersionStatus.Outdated; break;
|
||||||
|
case "unknown": status = ModVersionStatus.Unknown; break;
|
||||||
|
case "playtest": status = ModVersionStatus.PlaytestAvailable; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Game.RunAfterTick(() => ModVersionStatus = status);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -235,12 +235,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
var client = HttpClientFactory.Create();
|
|
||||||
var httpResponseMessage = await client.GetAsync(download.MirrorList);
|
|
||||||
var result = await httpResponseMessage.Content.ReadAsStringAsync();
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var client = HttpClientFactory.Create();
|
||||||
|
var httpResponseMessage = await client.GetAsync(download.MirrorList);
|
||||||
|
var result = await httpResponseMessage.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
var mirrorList = result.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
var mirrorList = result.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
downloadUrl(mirrorList.Random(new MersenneTwister()));
|
downloadUrl(mirrorList.Random(new MersenneTwister()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -343,16 +343,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
var games = new List<GameServer>();
|
List<GameServer> games = null;
|
||||||
var client = HttpClientFactory.Create();
|
|
||||||
var httpResponseMessage = await client.GetAsync(queryURL);
|
|
||||||
var result = await httpResponseMessage.Content.ReadAsStreamAsync();
|
|
||||||
|
|
||||||
activeQuery = true;
|
activeQuery = true;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var client = HttpClientFactory.Create();
|
||||||
|
var httpResponseMessage = await client.GetAsync(queryURL);
|
||||||
|
var result = await httpResponseMessage.Content.ReadAsStreamAsync();
|
||||||
|
|
||||||
var yaml = MiniYaml.FromStream(result);
|
var yaml = MiniYaml.FromStream(result);
|
||||||
|
games = new List<GameServer>();
|
||||||
foreach (var node in yaml)
|
foreach (var node in yaml)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
Reference in New Issue
Block a user