歌词下载api请求[JAVA]
Lyrics download api request [JAVA]
就像主题一样,我需要编写请求,该请求将使用 lyricwiki 将歌词下载到我在 MP3 播放器中的歌曲。下面是我应该使用的 link。
http://api.wikia.com/wiki/LyricWiki_API/REST
任何提示都会很棒!最好的例子是如何编写简单的请求?
我不知道该如何开始。有什么例子吗?使用 API 的代码是什么样子的?
这是一个非常简单的例子。如果不添加至少一些错误处理,它甚至可能无法编译,如果我要使用它,我会做很多工作来清理它,但它应该给你一个起点。
encodeField(String in)
{
// usually, this would be
// return java.net.URLEncoder.encode(in, "UTF-8");
// but this site *appears* to use a non-standard mapping
return java.net.URLEncoder.encode(in.replace(' ', '_'), "UTF-8");
}
getLyricsText(String artist, String song)
{
// construct the REST query URL
String query = "http://lyrics.wikia.com/api.php?func=getSong&artist="
+ encodeField(artist)
+ "&song="
+ encodeField(song)
+ "&fmt=text";
// open the URL and get a stream to read from
java.net.URL url = new java.net.URL(query);
java.io.InputStream is = url.openStream();
// get the text from the stream as lines
java.io.BufferedReader reader = new java.io.BufferedReader(is);
StringBuilder buf = new StringBuilder();
String s;
while ( (s = reader.readLine()) != null )
buf.append(s).append('\n');
// return the lines
return buf.toString();
}
就像主题一样,我需要编写请求,该请求将使用 lyricwiki 将歌词下载到我在 MP3 播放器中的歌曲。下面是我应该使用的 link。
http://api.wikia.com/wiki/LyricWiki_API/REST
任何提示都会很棒!最好的例子是如何编写简单的请求? 我不知道该如何开始。有什么例子吗?使用 API 的代码是什么样子的?
这是一个非常简单的例子。如果不添加至少一些错误处理,它甚至可能无法编译,如果我要使用它,我会做很多工作来清理它,但它应该给你一个起点。
encodeField(String in)
{
// usually, this would be
// return java.net.URLEncoder.encode(in, "UTF-8");
// but this site *appears* to use a non-standard mapping
return java.net.URLEncoder.encode(in.replace(' ', '_'), "UTF-8");
}
getLyricsText(String artist, String song)
{
// construct the REST query URL
String query = "http://lyrics.wikia.com/api.php?func=getSong&artist="
+ encodeField(artist)
+ "&song="
+ encodeField(song)
+ "&fmt=text";
// open the URL and get a stream to read from
java.net.URL url = new java.net.URL(query);
java.io.InputStream is = url.openStream();
// get the text from the stream as lines
java.io.BufferedReader reader = new java.io.BufferedReader(is);
StringBuilder buf = new StringBuilder();
String s;
while ( (s = reader.readLine()) != null )
buf.append(s).append('\n');
// return the lines
return buf.toString();
}