2016-06-01 3 views
-1

У меня есть HTTP-запрос, который получает файл с сервера, а затем загружает его на Java. Проблема в том, что файл, который я загружаю, на 2 байта больше, чем тот, который отправляется.Скачаемый файл большего размера, чем тот, который был отправлен

Вот как я пишу файл ответов.

InputStream input = connection.getInputStream(); 
    byte[] buffer = new byte[128]; 
    int n = - 1; 

    OutputStream output = new FileOutputStream(downloadsPath + formattedHeaders[0].toString()); 
    while ((n = input.read(buffer)) != -1) 
    { 
     output.write(buffer, 0, n); 
    } 
    input.close(); 
    output.close(); 

Я использую размер файла затем сравнить его с размером файла, отправленного в заголовке, чтобы увидеть, если у меня есть полный файл, загруженный. Размер сервера прекрасен и получает нужный размер и добавляет его в заголовки. Как-то, пока я пишу файл, он получает дополнительные 2 байта.

+1

Можете ли вы проверить последние два байта из файла? Я думаю, что это разделитель многопрофильного форматирования HTTP или разделителя кодированных разделов. – Konrad

+1

Также проверьте, есть ли в вашем файле специальные символы, которые кодируются по-разному в обоих (запрошенных и загруженных) файлах. – Habin

+0

Хэш не имеет значения, так как размер файла изменяется при пересылке. (до того, как я сравню хэши). – user5581557

ответ

0

Причина, по которой ответ не соответствует файлу, заключается в том, что ответ, который отправлен, также имеет «Ok», конкатенированный. Последние два байта [79, 107] при преобразовании в ASCII представляют «Ok». Удаление этого «ОК» на стороне сервера, чтобы он не отправил исправления.

 Смежные вопросы

  • Нет связанных вопросов^_^