2013-01-19 41 views
0

我正在編寫下載YouTube視頻的應用程序,並且遇到了一些問題。無法下載整個YouTube鏈接的HTML代碼

如您所知,youtuube中的每個視頻鏈接均包含指向視頻的直接鏈接。 當頁面使用flash flayer(而不是html5左右)時,它存儲在flash對象中(在它的flashvar attr中)。 我的應用程序解析該Flash對象並從中提取這些直接鏈接(每個可用視頻質量一個鏈接)。

我通過下載視頻的html代碼(例如http://www.youtube.com/watch?v=VIDEOID)並解析它來獲取flash對象的html代碼。

我用的AsyncTask到下載中心的HTML代碼(非移動版),這裏是我的下載代碼:

 HttpClient client = new DefaultHttpClient(); 
     client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1)"); 

     HttpGet request = new HttpGet(url); 
     HttpResponse response = client.execute(request); 

     String html = ""; 
     InputStream in = response.getEntity().getContent(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
     StringBuilder str = new StringBuilder(); 
     String line = null; 
     while((line = reader.readLine()) != null) 
     { 
      str.append(line); 
     } 
     in.close(); 
     html = str.toString(); 

     return html; 

現在我有一個小問題:

上面的代碼不下載whloe html代碼。下載的html字符串在中間的某處被切斷,我沒有得到flash對象部分。此功能可與其他網站一起使用!

我做錯了什麼?

謝謝:)

+1

你真的確定爲其他網站工作嗎?您是否嘗試過一個大型網站,例如維基百科中的長篇條目? –

+0

剛剛試過維基百科條目,它也沒有工作。所以我重新開始日食,現在沒關係!我將HTML設置爲TextView中的文本,所以也許我出於某種原因沒有看到整個HTML ... – eviabs

+0

很高興它的工作。 –

回答