今天在网上看到了一个音乐接口,刚巧一些音乐需要版权才可以听,于是就准备折腾一下……
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Scanner;
import org.json.JSONArray;
import org.json.JSONObject;
public class Main
{
public static void main(String[] args)
{
System.out.println("请输入歌曲名称\\歌手名");
Scanner scan = new Scanner(System.in);
String scanStr = scan.next();
System.out.println("获取数据中");
parseHtml(scanStr);
}
private static void parseHtml(String getText)
{
try
{
URL url = new URL("http://luaapp.cn/music.search.json?key=" + getText + "&page=1");
InputStream in = url.openStream();//openStream()方法访问Internet
InputStreamReader isr = new InputStreamReader(in);
BufferedReader bufr = new BufferedReader(isr);//读取源码
StringBuilder sb = new StringBuilder();
String str;
while ((str = bufr.readLine()) != null)
{
sb.append(str);// 将获取的源码拼接在一起
}
String json =sb.toString();
JSONObject jsonObj= new JSONObject(json);//首先取得一个JSONObject
JSONArray jsonArray = jsonObj.optJSONArray("list");//使用optJSONArray("名称"),得到一个集合
for (int index = 0,count = jsonArray == null ?0: jsonArray.length();index < count;index++)//遍历集合中的所有元素
{
JSONObject jsonObj2 = jsonArray.optJSONObject(index);
if (jsonObj2 == null)
{
continue;
}
String songMessage = jsonObj2.optString("song");
System.out.println(songMessage);
}
bufr.close();
isr.close();
in.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
上例首先创建对象url,并通过url.openStream()方法打开输入流获取InputStreamReader对象,再由此对象创建BufferedReader对象bufr,从bufr中读取数据即可得到url所指定的资源文件。
想做成app的朋友,自己直接调用parseHtml方法,把获取的数据放到list里面,进行一波”猛如虎”的操作就OK了。