JSoup を使用して、Cookie を使用して Web サイトを解析しました。JSoup を使用して Web サイトからファイルをダウンロードし、次のコードを使用してハッシュマップに保存された Cookie をダウンロードします。
Connection.Response res = Jsoup.connect("http://www.webpage.com/downloadpage).execute();
Map<String, String> cookies = res.cookies();
したがって、ファイルをダウンロードしようとするときは、これを使用します。
downloadFile(Jsoup.connect("http://www.webpage.com/file.ext).cookies(cookies).ignoreContentType(true).execute().bodyAsBytes());
と
private void downloadFile(byte[] fileByteArray) {
try {
File temprFile = File.createTempFile("tempfile", "ext", getCacheDir());
temprFile.deleteOnExit();
FileOutputStream fos = new FileOutputStream(temprFile);
fos.write(fileByteArray);
fos.close();
} catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException ex) {
String s = ex.toString();
ex.printStackTrace();
}
}
プログラムはエラーなしで実行されますが、一時ファイルを開こうとすると、ファイルが完全ではないように見えます。毎回、正確に 1.408.576 バイトがダウンロードされます。たとえば、この方法で mp3 ファイルをダウンロードすると、一時ファイルには元のファイルの 40 秒しか含まれません。ここで何が欠けていますか?
助けていただければ幸いです。ありがとう。