mirror of
https://github.com/Sarsoo/Spotify.NET.git
synced 2024-12-24 06:56:27 +00:00
Added error handling for invalid json errors, 500 gateway etc., fixes #303
This commit is contained in:
parent
a2b94536bc
commit
3c98a63873
@ -17,6 +17,8 @@ namespace SpotifyAPI.Web
|
||||
private readonly Encoding _encoding = Encoding.UTF8;
|
||||
private readonly HttpClient _client;
|
||||
|
||||
private const string UnknownErrorJson = "{\"error\": { \"status\": 0, \"message\": \"SpotifyAPI.Web - Unkown Spotify Error\" }}";
|
||||
|
||||
public SpotifyWebClient(ProxyConfig proxyConfig = null)
|
||||
{
|
||||
HttpClientHandler clientHandler = CreateClientHandler(proxyConfig);
|
||||
@ -70,14 +72,27 @@ namespace SpotifyAPI.Web
|
||||
public Tuple<ResponseInfo, T> DownloadJson<T>(string url, Dictionary<string, string> headers = null)
|
||||
{
|
||||
Tuple<ResponseInfo, string> response = Download(url, headers);
|
||||
try
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(response.Item2, JsonSettings));
|
||||
}
|
||||
catch (JsonException)
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(UnknownErrorJson, JsonSettings));
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Tuple<ResponseInfo, T>> DownloadJsonAsync<T>(string url, Dictionary<string, string> headers = null)
|
||||
{
|
||||
Tuple<ResponseInfo, string> response = await DownloadAsync(url, headers).ConfigureAwait(false);
|
||||
Tuple<ResponseInfo, string> response = await DownloadAsync(url, headers).ConfigureAwait(false);try
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(response.Item2, JsonSettings));
|
||||
}
|
||||
catch (JsonException)
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(UnknownErrorJson, JsonSettings));
|
||||
}
|
||||
}
|
||||
|
||||
public Tuple<ResponseInfo, string> Upload(string url, string body, string method, Dictionary<string, string> headers = null)
|
||||
{
|
||||
@ -136,14 +151,28 @@ namespace SpotifyAPI.Web
|
||||
public Tuple<ResponseInfo, T> UploadJson<T>(string url, string body, string method, Dictionary<string, string> headers = null)
|
||||
{
|
||||
Tuple<ResponseInfo, string> response = Upload(url, body, method, headers);
|
||||
try
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(response.Item2, JsonSettings));
|
||||
}
|
||||
catch (JsonException)
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(UnknownErrorJson, JsonSettings));
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Tuple<ResponseInfo, T>> UploadJsonAsync<T>(string url, string body, string method, Dictionary<string, string> headers = null)
|
||||
{
|
||||
Tuple<ResponseInfo, string> response = await UploadAsync(url, body, method, headers).ConfigureAwait(false);
|
||||
try
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(response.Item2, JsonSettings));
|
||||
}
|
||||
catch (JsonException)
|
||||
{
|
||||
return new Tuple<ResponseInfo, T>(response.Item1, JsonConvert.DeserializeObject<T>(UnknownErrorJson, JsonSettings));
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user