我有一个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个字节。
答案 0 :(得分:0)
响应与文件不匹配的原因是因为发送的响应也连接了“Ok”。转换为ASCII时的最后两个字节[79,107]表示“Ok”。在服务器端删除此“确定”,因此未发送它可以解决问题。