Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于Android程序中java的HttpUrlConnection的getContentLength方法_Java_Android_Httpurlconnection - Fatal编程技术网

关于Android程序中java的HttpUrlConnection的getContentLength方法

关于Android程序中java的HttpUrlConnection的getContentLength方法,java,android,httpurlconnection,Java,Android,Httpurlconnection,我可以下载.apk和其他可执行文件,除非我尝试通过公司WiFi进行下载。这是我的结果矩阵 如果我没有显式设置URL连接的任何属性(使用setRequestProperty()),则getContentLength()返回正确的长度 但是,由于程序正在进行多线程下载,我必须使用setRequestProperty设置Range属性,如下所示: Range: bytes = 0 - TotalBytes / TheadNum //first thread Range: bytes = Total

我可以下载.apk和其他可执行文件,除非我尝试通过公司WiFi进行下载。这是我的结果矩阵

如果我没有显式设置URL连接的任何属性(使用
setRequestProperty()
),则
getContentLength()
返回正确的长度

但是,由于程序正在进行多线程下载,我必须使用setRequestProperty设置Range属性,如下所示:

Range: bytes = 0 - TotalBytes / TheadNum  //first thread
Range: bytes = TotalBytes/ThreadNum - TotalBytes / TheadNum * 2  //second thread, and etc
当我这样做的时候,我得到了错误的结果,在上述形式的四分之一的情况下


我上一次对表格的编辑看起来正确吗?或者我应该做些修改吗?那么,在失败的情况下,你是说当你每四次(大约)得到一次坏内容长度时?还是总是这样。是您自己的多线程下载客户端代码给您带来了麻烦吗?Chrome是否可能因为您指定了proxy.pac脚本或wpad脚本或直接http代理而在公司网络(防火墙后面)中工作,但多线程客户端没有这样的功能?我不明白范围问题与公司WiFi有什么关系。是的,你上次编辑的下载结果表是我想要表达的,但是,在上面的表格中,错误的结果只有四分之一发生。我的客户端运行时间的25%不会发生错误,现在你用更好的符号改变了这些。我想我明白了,chrome总是为所有用户做一些代理,但我的客户端没有任何代理工具,我编写的客户端只在HTTP头中设置了Range属性并通过HttpUrlConnection连接。我不知道失败案例是如何发生的。是直接的互联网连接吗,它的服务器设置了一些代理工作,这样我的客户就可以工作了?范围问题不需要对公司wifi做什么,我只需要在工作中连接公司wifi。
   threadNum          = 2
   totalFileSize      = 39058483
   getContentLength() = 171 // (expected correct value is 17217690)