Android-поток не может получить целые данные
Я пытаюсь получить ссылку на скачивание YouTube с помощью этого
String data = getURL("http://www.youtube.com/get_video_info?video_id=" + id);
но он всегда возвращает часть данных. Конец данных похож на "...", например,
expire%253D1391242316%2526ms%253Dau%2526fexp%253D900356%25252C902546%25252C936910%252...
Я использовал этот код
public String getURL(String s){
InputStream is = null;
try{
URL r = new URL(s);
URLConnection rc = r.openConnection();
DataInputStream dis = new DataInputStream(rc.getInputStream());
List<Byte> l = new ArrayList<Byte>();
while(true){
try{
l.add(dis.readByte());
}catch(Exception e){
break;
}
}
byte[] b = new byte[l.size()];
for(int i = 0; i < l.size(); i++){
b[i] = l.get(i);
}
return new String(b,"UTF-8");
}catch(Exception e){
e.printStackTrace();
return null;
}
}
Есть ли кто-то, почему это не может получить целые данные? Он может быть загружен, если я просто использую Chrome по этому URL
http://www.youtube.com/get_video_info?video_id=itGNQbJwRSk
Он загружает весь файл. но потоковое не может.
1 ответ
Решение
Я был глуп!. Это было просто значение окна отладки.
Я записал длину строки и обнаружил, что она совпадает с общей длиной файла.