mirror of
https://github.com/Sarsoo/Spotify.NET.git
synced 2024-12-24 06:56:27 +00:00
netstandard2.0 support
This commit is contained in:
parent
f05b208f6a
commit
fabf49ef3a
@ -1,6 +1,6 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>netstandard2.1</TargetFrameworks>
|
<TargetFrameworks>netstandard2.1;netstandard2.0</TargetFrameworks>
|
||||||
<PackageId>SpotifyAPI.Web.Auth</PackageId>
|
<PackageId>SpotifyAPI.Web.Auth</PackageId>
|
||||||
<Title>SpotifyAPI.Web.Auth</Title>
|
<Title>SpotifyAPI.Web.Auth</Title>
|
||||||
<Authors>Jonas Dellinger</Authors>
|
<Authors>Jonas Dellinger</Authors>
|
||||||
|
@ -212,9 +212,15 @@ namespace SpotifyAPI.Web.Http
|
|||||||
|
|
||||||
private async Task ApplyAuthenticator(IRequest request)
|
private async Task ApplyAuthenticator(IRequest request)
|
||||||
{
|
{
|
||||||
|
#if NETSTANDARD2_0
|
||||||
|
if (_authenticator != null
|
||||||
|
&& !request.Endpoint.IsAbsoluteUri
|
||||||
|
|| request.Endpoint.AbsoluteUri.Contains("https://api.spotify.com"))
|
||||||
|
#else
|
||||||
if (_authenticator != null
|
if (_authenticator != null
|
||||||
&& !request.Endpoint.IsAbsoluteUri
|
&& !request.Endpoint.IsAbsoluteUri
|
||||||
|| request.Endpoint.AbsoluteUri.Contains("https://api.spotify.com", StringComparison.InvariantCulture))
|
|| request.Endpoint.AbsoluteUri.Contains("https://api.spotify.com", StringComparison.InvariantCulture))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
await _authenticator.Apply(request, this).ConfigureAwait(false);
|
await _authenticator.Apply(request, this).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@ -267,11 +273,13 @@ namespace SpotifyAPI.Web.Http
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw response.StatusCode switch
|
switch (response.StatusCode)
|
||||||
{
|
{
|
||||||
HttpStatusCode.Unauthorized => new APIUnauthorizedException(response),
|
case HttpStatusCode.Unauthorized:
|
||||||
_ => new APIException(response),
|
throw new APIUnauthorizedException(response);
|
||||||
};
|
default:
|
||||||
|
throw new APIException(response);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,20 +30,23 @@ namespace SpotifyAPI.Web.Http
|
|||||||
{
|
{
|
||||||
Ensure.ArgumentNotNull(request, nameof(request));
|
Ensure.ArgumentNotNull(request, nameof(request));
|
||||||
|
|
||||||
using HttpRequestMessage requestMsg = BuildRequestMessage(request);
|
using (HttpRequestMessage requestMsg = BuildRequestMessage(request))
|
||||||
|
{
|
||||||
var responseMsg = await _httpClient
|
var responseMsg = await _httpClient
|
||||||
.SendAsync(requestMsg, HttpCompletionOption.ResponseContentRead)
|
.SendAsync(requestMsg, HttpCompletionOption.ResponseContentRead)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
return await BuildResponse(responseMsg).ConfigureAwait(false);
|
return await BuildResponse(responseMsg).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static async Task<IResponse> BuildResponse(HttpResponseMessage responseMsg)
|
private static async Task<IResponse> BuildResponse(HttpResponseMessage responseMsg)
|
||||||
{
|
{
|
||||||
Ensure.ArgumentNotNull(responseMsg, nameof(responseMsg));
|
Ensure.ArgumentNotNull(responseMsg, nameof(responseMsg));
|
||||||
|
|
||||||
// We only support text stuff for now
|
// We only support text stuff for now
|
||||||
using var content = responseMsg.Content;
|
using (var content = responseMsg.Content)
|
||||||
|
{
|
||||||
var headers = responseMsg.Headers.ToDictionary(header => header.Key, header => header.Value.First());
|
var headers = responseMsg.Headers.ToDictionary(header => header.Key, header => header.Value.First());
|
||||||
var body = await responseMsg.Content.ReadAsStringAsync().ConfigureAwait(false);
|
var body = await responseMsg.Content.ReadAsStringAsync().ConfigureAwait(false);
|
||||||
var contentType = content.Headers?.ContentType?.MediaType;
|
var contentType = content.Headers?.ContentType?.MediaType;
|
||||||
@ -55,6 +58,7 @@ namespace SpotifyAPI.Web.Http
|
|||||||
Body = body
|
Body = body
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static HttpRequestMessage BuildRequestMessage(IRequest request)
|
private static HttpRequestMessage BuildRequestMessage(IRequest request)
|
||||||
{
|
{
|
||||||
|
@ -25,8 +25,12 @@ namespace SpotifyAPI.Web.Http
|
|||||||
public void OnResponse(IResponse response)
|
public void OnResponse(IResponse response)
|
||||||
{
|
{
|
||||||
Ensure.ArgumentNotNull(response, nameof(response));
|
Ensure.ArgumentNotNull(response, nameof(response));
|
||||||
|
#if NETSTANDARD2_0
|
||||||
|
string body = response.Body?.ToString().Replace("\n", "");
|
||||||
|
#else
|
||||||
string body = response.Body?.ToString().Replace("\n", "", StringComparison.InvariantCulture);
|
string body = response.Body?.ToString().Replace("\n", "", StringComparison.InvariantCulture);
|
||||||
|
#endif
|
||||||
|
|
||||||
body = body?.Substring(0, Math.Min(50, body?.Length ?? 0));
|
body = body?.Substring(0, Math.Min(50, body?.Length ?? 0));
|
||||||
Console.WriteLine("--> {0} {1} {2}\n", response.StatusCode, response.ContentType, body);
|
Console.WriteLine("--> {0} {1} {2}\n", response.StatusCode, response.ContentType, body);
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ namespace SpotifyAPI.Web.Http
|
|||||||
|
|
||||||
private static int? ParseTooManyRetriesToMs(IResponse response)
|
private static int? ParseTooManyRetriesToMs(IResponse response)
|
||||||
{
|
{
|
||||||
if (response.StatusCode != HttpStatusCode.TooManyRequests)
|
if (response.StatusCode != (HttpStatusCode)429)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,6 @@ namespace SpotifyAPI.Web
|
|||||||
public interface IPlayableItem
|
public interface IPlayableItem
|
||||||
{
|
{
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
public ItemType Type { get; }
|
ItemType Type { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>netstandard2.1</TargetFrameworks>
|
<TargetFrameworks>netstandard2.1;netstandard2.0</TargetFrameworks>
|
||||||
<!-- <GenerateDocumentationFile>true</GenerateDocumentationFile> -->
|
<!-- <GenerateDocumentationFile>true</GenerateDocumentationFile> -->
|
||||||
<PackageId>SpotifyAPI.Web</PackageId>
|
<PackageId>SpotifyAPI.Web</PackageId>
|
||||||
<Title>SpotifyAPI.Web</Title>
|
<Title>SpotifyAPI.Web</Title>
|
||||||
|
Loading…
Reference in New Issue
Block a user