public async ValueTask <byte[]> DownloadAsync(string songName, string artist) { var requestParameter = new SongSearchRequest(songName, artist); var searchResult = await _warpHttpClient.PostAsync <SongSearchResponse>( SearchMusicApi, requestParameter, true, _defaultOption); if (searchResult is not { StatusCode : 200 } || searchResult.Items?.SongCount <= 0)
protected override async ValueTask <byte[]> DownloadDataAsync(LyricDownloaderArgs args) { var searchResult = await _warpHttpClient.PostAsync <SongSearchResponse>( NetEaseSearchMusicUrl, new SongSearchRequest(args.SongName, args.Artist), true, msg => { msg.Headers.Referrer = new Uri(NetEaseRequestReferer); if (msg.Content != null) { msg.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(NetEaseRequestContentType); } }); ValidateSongSearchResponse(searchResult, args); var lyricResponse = await _warpHttpClient.GetAsync( NetEaseGetLyricUrl, new GetLyricRequest(searchResult.GetFirstMatchSongId(args.SongName)), msg => msg.Headers.Referrer = new Uri(NetEaseRequestReferer)); return(Encoding.UTF8.GetBytes(lyricResponse)); }