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對象部分。此功能可與其他網站一起使用!
我做錯了什麼?
謝謝:)
你真的確定爲其他網站工作嗎?您是否嘗試過一個大型網站,例如維基百科中的長篇條目? –
剛剛試過維基百科條目,它也沒有工作。所以我重新開始日食,現在沒關係!我將HTML設置爲TextView中的文本,所以也許我出於某種原因沒有看到整個HTML ... – eviabs
很高興它的工作。 –