Estoy descargando archivos zip del servidor web usando Java, pero de alguna manera estoy perdiendo aproximadamente 2kb en cada archivo. No sé por qué, ya que el mismo código funciona bien con otros formatos, por ejemplo, texto, mp3 y extra. se agradece cualquier ayuda? aquí está mi código.¿descargar archivo zip usando java?
public void download_zip_file(String save_to) {
try {
URLConnection conn = this.url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestProperty("content-type", "binary/data");
InputStream in = conn.getInputStream();
FileOutputStream out = new FileOutputStream(save_to + "tmp.zip");
byte[] b = new byte[1024];
int count;
while ((count = in.read(b)) > 0) {
out.write(b, 0, count);
}
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
¿Tiene control total sobre el servidor donde está alojado el archivo zip? ¿Funciona si descarga el archivo zip usando un navegador web normal? – BalusC
No tengo acceso al servidor web, pero funciona bien en el navegador. Cambié el agente de usuario y todo funcionó bien. – Mohamed
Drat, hubiera sugerido exactamente eso en una respuesta cuando confirmaste que funciona bien en un navegador normal :) El 'setDoOutput (true)' por cierto implícitamente establece el método de solicitud en POST. Normalmente no desea usarlo para descargas de archivos puros. Algunos servidores rechazarán la descarga cuando lo solicite POST en lugar de GET. – BalusC