diff --git a/BritishHorseRacingApi/ApiClient.cs b/BritishHorseRacingApi/ApiClient.cs index fe2b45a..e03eeb3 100644 --- a/BritishHorseRacingApi/ApiClient.cs +++ b/BritishHorseRacingApi/ApiClient.cs @@ -248,10 +248,17 @@ namespace BritishHorseRacingApi } var content = response.Content; - while (content.StartsWith("<")) + while (content.StartsWith("<") || content.StartsWith("Error: \"Failed to connect")) { + if (!content.StartsWith("<")) + { + await Task.Delay(TimeSpan.FromSeconds(30)); + response = await SendRequest(endpoint); + content = response.Content; + continue; + } + await Task.Delay(TimeSpan.FromSeconds(_waitTimeAfterFail)); - //_client.OutgoingPort++; await GetNewToken(); _client.DefaultHeaders.Items.RemoveAll(e => e.Key == "Accept-Language"); _client.DefaultHeaders.Items.Add(new KeyValuePair("Accept-Language", $"en-US,en;q=0.9;id={Guid.NewGuid().ToString()}")); @@ -260,6 +267,7 @@ namespace BritishHorseRacingApi content = response.Content; } + if (!response.IsSuccessStatusCode) { throw new Exception($"Unexpected error: {content}" ); diff --git a/BritishHorseRacingApi/Models/Status.cs b/BritishHorseRacingApi/Models/Status.cs index 5ef7d8f..e197e4d 100644 --- a/BritishHorseRacingApi/Models/Status.cs +++ b/BritishHorseRacingApi/Models/Status.cs @@ -1,4 +1,4 @@ namespace BritishHorseRacingApi.Models { - public enum Status { Runner, Dnf, Withdrawn }; + public enum Status { Runner, Dnf, Withdrawn, NonRunner }; }