一、酷狗 歌词搜索 Indy TIdhttp

本文介绍如何通过编程方式获取酷狗音乐平台上的歌词,并对其进行解析。文章提供了使用特定编码格式请求酷狗歌词URL的方法,包括将中文歌名转换为UTF-8编码的函数,以及通过HTTP请求获取歌词的具体实现。

酷狗歌词Url: http://lib9.service.kugou.com/websearch/index.php?page=1&cmd=100&pagesize=9&keyword= +歌名

酷狗歌词编码:UTF-8

中文歌名转UTF8编码代码

 1 function StrToHex(str: string; AEncoding: TEncoding): string;
 2 var
 3   ss: TStringStream;
 4   i: Integer;
 5 begin
 6   Result := '';
 7   ss := TStringStream.Create(str, AEncoding);
 8   try
 9     for i := 0 to ss.Size - 1 do
10       Result := Result + '%' + Format('%.2x', [ss.Bytes[i]]);
11   finally
12     ss.Free;
13   end;
14 end;

StrToHex(歌词,TEncoding.utf8)

TIdhttp调用代码

 1   function httpGetByStream(Url:string;AEncoding:TEncoding):TStringStream;
 2   begin
 3    try
 4     Result := TStringStream.Create('', AEncoding);
 5     FIdhttp := TIdHTTP.Create(nil);
 6     FIdhttp.ConnectTimeout := 3000;
 7     FIdhttp.ReadTimeout := 6000;
 8     FIdhttp.Get(FUrl, Result);
 9    finally
10      FIdhttp.Disconnect;
11      FreeAndNil(FIdhttp);
12      end;
13   end;
14 
15 var
16   ReStreamBuff : TStringStream;
17 begin
18        //以Utf8编码格式实例化字符串流,
19         ReStreamBuff := TStringStream.Create('', TEncoding.UTF8);
20         try
21           ReStreamBuff := httpGetByStream(FUrl, TEncoding.UTF8);
22          //do   datasting;
23         finally
24           ReStreamBuff.Free;
25         end;
26 end;

最后解析出来的ReStreamBuff为字符串流,其Datastring为JSON串

使用系统自带的System.JSON类解析即可

 

转载于:https://www.cnblogs.com/ab0416/p/4087626.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值