日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
百度音樂接口的應(yīng)用

這里實(shí)現(xiàn)能夠?qū)崿F(xiàn)輸入歌曲名與歌手名,***找到該歌曲的播放地址,并通過超鏈接的形式打開或播放。以下是實(shí)現(xiàn)過程:

創(chuàng)新互聯(lián)專業(yè)提供成都服務(wù)器托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購(gòu)買成都服務(wù)器托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。

(1)、首先是一個(gè)JSP,接收歌曲名與歌手名,并提交給Servlet處理。

 
 
 
  1. <%@ page contentType="text/html;charset=GBK" pageEncoding="GBK"%> 
  2.  
  3.  
  4.  
  5. 輸入歌手和歌曲名找歌曲

     
  6.  
  7. 歌手名:
     
  8. 歌曲名:
     
  9.  
  10.  
  11.  
  12.  
  13.  

(2)、編寫解析DOM的工具類,這個(gè)類有一個(gè)靜態(tài)方法 String dom(File file),傳遞的參數(shù)是要解析的XML文件,返回值是百度音樂的地址。

 
 
 
  1. package cn.guet.hj.servlet;  
  2. import javax.xml.parsers.*;  
  3. import org.w3c.dom.*;  
  4. import java.io.*;  
  5. /**  
  6. *   解析百度音樂掌門的XML  
  7. **/  
  8. public class MusicDom{  
  9.     //解析DOM  
  10.     public static String dom(File file){  
  11.           
  12.         String address="";//歌曲的實(shí)際地址  
  13.         try{  
  14.             //建立工廠類  
  15.             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
  16.             //建立Builder對(duì)象  
  17.             DocumentBuilder builder = factory.newDocumentBuilder();  
  18.             //將制定內(nèi)容解析為XML文檔,返回一個(gè)Document對(duì)象  
  19.             Document doc = builder.parse(file);  
  20.             //建立NodeList  
  21.             NodeList url_list = doc.getElementsByTagName("url");//取得url標(biāo)簽列表  
  22.             //取得url標(biāo)簽下的所有子標(biāo)簽  
  23.               
  24.             //取得encode標(biāo)簽內(nèi)容  
  25.             Element e1 = (Element)url_list.item(0);  
  26.             address = e1.getElementsByTagName("encode").item(0).getFirstChild().getNodeValue();//加歌曲地址  
  27.             //取得decode標(biāo)簽內(nèi)容  
  28.             Element e2 = (Element)url_list.item(0);  
  29.             address += "/"+e2.getElementsByTagName("decode").item(0).getFirstChild().getNodeValue();//加歌曲名  
  30.         }catch(Exception e){  
  31.             e.printStackTrace();  
  32.         }  
  33.         return address;  
  34.     }             

(3)、編寫Servlet,處理JSP傳遞來的請(qǐng)求,這里主要覆寫HttpServlet的doGet與doPost方法。我們將獲取JSP的參數(shù)并傳遞到百度音樂接口中,將這個(gè)字符串新建URL并連接,然后通過IO流保存XML文件,***調(diào)用前面的工具類得到播放地址。***請(qǐng)求轉(zhuǎn)發(fā)到另一個(gè)JSP中。

 
 
 
  1. package cn.guet.hj.servlet;  
  2. import javax.servlet.*;  
  3. import javax.servlet.http.*;  
  4. import java.io.*;  
  5. import java.net.*;  
  6. /**  
  7. **   接收歌曲名與歌手名 處理請(qǐng)求  
  8. **/   
  9. public class MusicServlet extends HttpServlet{  
  10.     //處理Get請(qǐng)求  
  11.     public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{  
  12.         request.setCharacterEncoding("GBK");  
  13.         String person_name = request.getParameter("person_name");  
  14.         String music_name = request.getParameter("music_name");  
  15.         //將會(huì)返回歌曲信息的XML  
  16.         String url_str = "http://box.zhangmen.baidu.com/x?op=12&count=1&title="+music_name+"$$"+person_name+"$$$$";  
  17.           
  18.         URL url = new URL(url_str);//新建URL對(duì)象  
  19.         URLConnection conn = url.openConnection();//連接對(duì)象  
  20.         conn.connect();//發(fā)送連接  
  21.           
  22.         InputStream input = conn.getInputStream();//獲取目的的輸入流  
  23.         File file = new File("D:"+File.separator+music_name+".xml");  
  24.         OutputStream output = new FileOutputStream(file);//輸出流  
  25.         byte []b = new byte[20240];   
  26.         int len = input.read(b);  
  27.         output.write(b,0,len);  
  28.         //Dom解析  
  29.         String address = MusicDom.dom(file);//播放地址 調(diào)用解析Dom解析的類  
  30.         request.setAttribute("address",address);//設(shè)置屬性  
  31.         //System.out.println(address);  
  32.         output.close();  
  33.         input.close();  
  34.         //請(qǐng)求轉(zhuǎn)發(fā)  
  35.         RequestDispatcher view = request.getRequestDispatcher("music_play.jsp");  
  36.         view.forward(request,response);  
  37.     }  
  38.       
  39.     //處理Post請(qǐng)求  
  40.     public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{  
  41.         this.doGet(request,response);  
  42.     }  

(4)、寫JSP頁面,這里主要是一個(gè)超鏈接,連接到音樂地址。

 
 
 
  1. <%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%> 
  2. <%@ page import="java.net.*"%> 
  3. <%@ page import="java.io.*"%> 
  4.   
  5.   
  6. 播放音樂

     
  7.  
  8.  

總結(jié):上面的例子實(shí)現(xiàn)了輸入歌曲名與歌手名來找到歌曲的地址。這個(gè)例子主要綜合了前面學(xué)過的XML文件解析,IO流,Servlet,JSP等知識(shí),雖然實(shí)現(xiàn)過程不復(fù)雜,但是還是遇到很多問題,比如連接URL對(duì)象,獲取XML文件這是以前沒有接觸,但是還是邊學(xué)邊做的寫完了程序。此外,***一步超鏈接還是有一些問題,會(huì)出現(xiàn)403錯(cuò)誤,還是要通過地址欄輸入地址才能訪問,這一步暫時(shí)還沒解決。

原文鏈接:http://hepershade.iteye.com/blog/1488580


新聞標(biāo)題:百度音樂接口的應(yīng)用
本文鏈接:http://www.dlmjj.cn/article/cdojgjj.html