Java-http-download-Datei korrumpiert

Ich habe ein problem, was ich nicht zu sein scheinen in der Lage zu lösen...
Mache ich einen http-download einer Datei, aber die CRC32 der Datei auf dem server und auf dem client nicht übereinstimmen. Auch die Datei unterschiedliche Größe, so natürlich ich muss etwas falsch... bei mir ist der download über Firefox, die Dateigröße ist ok... also ich denke, es ist irgendwo in den client-code.

Habe ich schon gefunden Korrupte Datei bei der Verwendung von Java Datei downloaden, aber das hat mir nicht helfen... entweder

Hier der code:

private void downloadJar(String fileName, long crc32Server) throws IOException {
  System.out.println("Downloading file '" + fileName + "' from server '" + mServer + "'.");
  HttpURLConnection sourceConnection = null;
  BufferedInputStream inputStream = null;
  BufferedWriter fileWriter = null;
  long crc32Client;
  try {
    URL sourceURL = new URL(fileName);
    try {
      sourceConnection = (HttpURLConnection)sourceURL.openConnection();
    }
    catch (MalformedURLException exc) {
      throw new RuntimeException("Configured URL caused a MalformedURLException: ", exc);
    }
    sourceConnection.setRequestProperty("Accept-Encoding", "zip, jar");
    sourceConnection.connect();
    inputStream = new BufferedInputStream(sourceConnection.getInputStream());
    fileWriter = new BufferedWriter(new FileWriter(targetFolder + File.separator + fileName));
    CRC32 crc32 = new CRC32();
    for (int singleByte = inputStream.read(); singleByte != -1; singleByte = inputStream.read()) {
      fileWriter.write(singleByte);
      crc32.update(singleByte);
    }
    crc32Client = crc32.getValue();
  }
  finally {
    if (inputStream != null) {
      inputStream.close();
    }
    if (fileWriter != null) {
      fileWriter.flush();
      fileWriter.close();
    }
    if (sourceConnection != null) {
      sourceConnection.disconnect();
    }
  }
  if (crc32Client != crc32Server) {
    //     deleteFile(fileName);
    throw new IOException("CRC32 did not match for file '" + fileName + "': " + crc32Client + "!="
        + crc32Server);
  }
}
  • Sie würden wahrscheinlich mehr Antworten, wenn Sie nicht machen dies zu einem community-wiki.
Schreibe einen Kommentar