Services/Music/KWMusicService.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using LisMusic.Common;
using LisMusic.Models;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
namespace LisMusic.Services
{
public class KWMusicService : MusicHttpClient, IALLMusicService
{
private readonly MusicSource _musicSource = MusicSource.KW;
//参数:<<KeyWord>>
const string urlGetMusicList1 = "http://www.kuwo.cn/search/list?key={0}";//新搜索,分两步,两个url
const string urlGetMusicList2 = "http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={0}&pn=1&rn=30&reqId=";
//const string urlGetMusicList = "http://sou.kuwo.cn/ws/NSearch?type=music&key={0}";//旧搜索URL,返回html
//参数:<<MUSICID>> //旧下载接口,可下vip
const string urlGetMusicDownloadUrl = "http://antiserver.kuwo.cn/anti.s?format=mp3|mp3&rid={0}&type=convert_url&response=res";
public KWMusicService(HttpClient httpClient) : base(httpClient)
{
//httpClient.BaseAddress = new Uri("http://sou.kuwo.cn");
}
public MusicSource MusicSource => _musicSource;
public async Task<List<MusicInfo>> GetMusicListAsync(string keyWord)
{
List<MusicInfo> musicInfos = new List<MusicInfo>();
try
{
//第一步,获取 头部csrf
string url1 = string.Format(urlGetMusicList1, keyWord);
await base.GetAsync(url1);
string strKwToken = base.GetCookie("kw_token");
//第二步,获取 列表
string url2 = string.Format(urlGetMusicList2, keyWord);
HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, url2);
message.Headers.Add("Referer", url1);
message.Headers.Add("csrf", strKwToken);
string str = await base.SendAsync(message);
//解析列表
JObject jo = JObject.Parse(str);
for (int i = 0; i < jo["data"]["list"].Count(); i++)
{
bool bolCanDownload = true;
//旧接口下载,高品质而且vip可下
//if (jo["data"]["lists"][i]["pay"].ToString() == "16711935") //该字段为16711935,则为收费,不可下载
// bolCanDownload = false;
MusicInfo musicInfo = new MusicInfo() { Name = jo["data"]["list"][i]["name"].ToString(), Singer = jo["data"]["list"][i]["artist"].ToString(), Album = jo["data"]["list"][i]["album"].ToString(), DownloadInfo = jo["data"]["list"][i]["musicrid"].ToString(), CanDownload = bolCanDownload, MusicSource = MusicSource.KW };
musicInfos.Add(musicInfo);
}
后面还有 34 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。