总结起来,connection.getContentLength()方法返回-1表示无法获取HTTP响应的内容长度,可能是由于服务器未设置Content-Length头部字段、使用了压缩编码或连接未建立或已关闭等原因。在实际开发中,我们需要根据具体情况采取适当的处理方式,以确保正确获取和处理HTTP响应数据。 相关搜索: android.os.FileUtils.setPermissions...
Content-Length为-1导致下载文件字节数为0错误 正在android下写一个多线程下载类,发现当文件很小(几kb大小)时,该代码工作良好。当下载的文件比较大(如几百kb)时,下载到的文件大小全部为0。 在后台打印中查看到,文件比较小时,一般可以正确拿到http的content-length,当文件比较大时,content-length全部为-1,多线程下...
在上述代码中,我们使用HttpHeaders来设置Content-Length响应头,并将文件数据和响应头一起返回。 3.3 使用流式下载,并设置Content-Length为-1 如果文件大小不可获取,那么就需要使用流式下载。在这种情况下,我们可以设置Content-Length为-1,以告诉浏览器文件大小未知。例如: importjavax.servlet.http.HttpServletResponse;...
Content-Length为-1导致下载文件字节数为0错误 正在android下写一个多线程下载类,发现当文件很小(几kb大小)时,该代码工作良好。当下载的文件比较大(如几百kb)时,下载到的文件大小全部为0。 在后台打印中查看到,文件比较小时,一般可以正确拿到http的content-length,当文件比较大时,content-length全部为-1,多线程下...
Stream stream=wr.GetResponseStream();//读取到内存MemoryStream stmMemory =newMemoryStream();byte[] buffer1 =newbyte[1024*100]; //每次从文件读取1024个字节。inti;//将字节逐个放入到Byte 中while((i = stream.Read(buffer1,0, buffer1.Length)) >0) ...
JavaDoc API没有。其中fileSystem 是一个IFileSystem对象,IFileSySTEM是java没有公开的一个类,JavaDoc API中没有;fd是一个FileDescriptor对象,即文件描述符。说明这句代码是通过文件描述符获取文件的总大小,而并不是事先将磁盘上的文件数据全部读入流中,再获取文件总大小。
getContentLength总是=-1,都不知道怎么改了,求助,都烦了一天了下面是代码:/***从服务器上取出更新里*@parampath*@parampd*@return*@throwsException*/publicFile..
没有要求网站提供一个内容长度的标题,也没有保证它是正确的。所以你不能依赖它。如果您试图使用Content...
我也遇到过这个问题今天解决了,我自己做了一个上传下载,检测 有更新 就下载,无更新就不下载 每次要对比已下载的文件长度 和 服务器的文件长度是否相同 servlet 中 response.setContentLength(fis.available()); 这行代码没设置 设置之后 就好 conn.getcontentLength 就能够取到长度了 ...
获取远程文件大小 网上给的方案大部分是下面这条,但是会出现getContentLength()为-1的情况,搜索结果大部分为 conn.setRequestProperty("Accept-Encoding", "identity"); 这条建议,但无效果 URL url=newURL(urlStr);HttpURLConnection conn=(HttpURLConnection)url1.openConnection();conn.setRequestProperty("Accept...