Java 请求方法GET返回错误的内容长度

Java 请求方法GET返回错误的内容长度,java,android,http,connection,Java,Android,Http,Connection,您好,我正在使用一个HttpURLConnection,它获取一个txt文件的内容,我想知道该文件的大小,我使用了content-length方法,但它返回了错误的值。例如,在这个代码中,文件的大小是17509,但它返回5147? 有什么帮助吗? 提前非常感谢:) 内容长度是服务器设置的标题。我会检查以确保您的服务器返回正确的内容长度。您可以使用cUrl执行此操作: curl -v http://path/to/file.txt 这应该会向您显示发送和返回的标题。我能想到的一个快速解决方法是忽

您好,我正在使用一个
HttpURLConnection
,它获取一个
txt
文件的内容,我想知道该文件的大小,我使用了content-length方法,但它返回了错误的值。例如,在这个代码中,文件的大小是17509,但它返回5147? 有什么帮助吗? 提前非常感谢:)


内容长度是服务器设置的标题。我会检查以确保您的服务器返回正确的内容长度。您可以使用cUrl执行此操作:

curl -v http://path/to/file.txt

这应该会向您显示发送和返回的标题。

我能想到的一个快速解决方法是忽略内容长度并读取输入流,直到没有任何内容可读取为止

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(8192);
int read = inputStream.read();

while (read != -1) {
   byteArrayOutputStream.write((byte) read);
   read = inputStream.read();
}

byteArrayOutputStream.flush();
buf = byteArrayOutputStream.toByteArray();

谢谢你的回答,http路径是
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(8192);
int read = inputStream.read();

while (read != -1) {
   byteArrayOutputStream.write((byte) read);
   read = inputStream.read();
}

byteArrayOutputStream.flush();
buf = byteArrayOutputStream.toByteArray();