私はSpotifyのWeb APIで遊んでいるだけで、トップのトラックにアクセスしようとしています。私は問題に遭遇しましたが、私は数時間前に解決しようとしていましたが、答えが見つかりません。'UTF8'はサポートされているエンコーディング名ではありません
私は私の応答をデシリアライズしようとすると、私はfollwingエラーを取得する:
'UTF8' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. Parameter name: name The character set provided in ContentType is invalid. Cannot read content as string using an invalid character set.
たContentTypeがapplication/json; charset=UTF8
任意のアイデアですか?
は、ここに私の要求コードです:
private static HttpClient GetHttpClient()
{
HttpClientHandler handler = new HttpClientHandler() {
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
};
var httpClient = new HttpClient(handler);
httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
return httpClient;
}
public async Task<SearchArtistResponse> GetSelfTopAsync(string type, string userName)
{
var httpClient = GetHttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", GetAccessToken(userName));
var sb = new StringBuilder();
sb.Append(ApiUrl);
sb.Append($"/me/top/{type}");
var query = sb.ToString();
var response = await httpClient.GetAsync(query);
var spotifyResponse = JsonConvert.DeserializeObject<SearchArtistResponse>(await response.Content.ReadAsStringAsync());
return spotifyResponse;
}
これはSpotify Web APIのバグであり、このエンドポイントのcharset = utf-8の代わりにcharset = UTF8を送信すると思います。それはここに提出されています:https://github.com/spotify/web-api/issues/291 – jooon
私は[プロキシの指定](https://stackoverflow.com/q/16526689/86967)で同様の問題を解決しました。 – nobar
デシリアライザに渡す前にそれをあらかじめ読んでエラーを修正することができます... – Nyerguds