- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试使用具有暂停/恢复功能的“输入/输出流”进行下载。问题是当我将requestproperty设置为我下载的数量时:connection.setRequestProperty(“Range”,“bytes =”+downloaded+“-”);并读取长度:int fileLength = connection.getContentLength();它给了我正确的数量,但在下载代码(while 循环)中,即使我设置了正确的请求,它也会下载文件的完整大小。
示例:它开始正常下载
total:2048 data length:1570024
07-21 11:26:17.650 D: zz path:v_3_1 total:4096 file length(should be full):1570024
07-21 11:26:17.650 D: zz path:v_3_1 total:6144 file length(should be full):1570024
07-21 11:26:17.651 D: zz path:v_3_1 total:8192 file length(should be full):1570024
07-21 11:26:17.652 D: zz path:v_3_1 total:10240 file length(should be full):1570024
07-21 11:26:17.652 D: zz path:v_3_1 total:12288 file length(should be full):1570024
07-21 11:26:17.653 D: zz path:v_3_1 total:14336 file length(should be full):1570024
07-21 11:26:17.653 D: zz path:v_3_1 total:16384 file length(should be full):1570024
在这里我暂停然后恢复它(工作正常):
data length is:830696
07-21 11:26:30.949 D: zz path:v_3_1 total:741376 file length(should be full):1570024
07-21 11:26:30.950 D: zz path:v_3_1 total:743424 file length(should be full):1570024
07-21 11:26:30.950 D: zz path:v_3_1 total:745472 file length(should be full):1570024
07-21 11:26:30.950 D: zz path:v_3_1 total:747520 file length(should be full):1570024
07-21 11:26:30.950 D: zz path:v_3_1 total:749568 file length(should be full):1570024
07-21 11:26:30.950 D: zz path:v_3_1 total:751616 file length(should be full):1570024
07-21 11:26:30.951 D: zz path:v_3_1 total:753664 file length(should be full):1570024
07-21 11:26:30.951 D: zz path:v_3_1 total:755712 file length(should be full):1570024
07-21 11:26:31.070 D: zz path:v_3_1 total:757760 file length(should be full):1570024
07-21 11:26:31.071 D: zz path:v_3_1 total:759808 file length(should be full):1570024
07-21 11:26:31.074 D: zz path:v_3_1 total:761856 file length(should be full):1570024
07-21 11:26:31.076 D: zz path:v_3_1 total:763904 file length(should be full):1570024
07-21 11:26:31.077 D: zz path:v_3_1 total:765952 file length(should be full):1570024
07-21 11:26:31.078 D: zz path:v_3_1 total:768000 file length(should be full):1570024
但随后它会超过文件的完整大小并停止在 1570024(完整大小)+739328(我暂停之前的大小)...它应该只会上升到 1570024 并停止。
07-21 11:26:32.125 D: zz path:v_3_1 total:1750816 file length(should be full):1570024
代码:
try {
URL url = new URL(sUrl[1]);
URLConnection connection = url.openConnection();
if(resume){downloaded=viv.getIsdown2(path);
connection.setRequestProperty("Range", "bytes=" + downloaded + "-");}
connection.setDoInput(true);
connection.setDoOutput(true);
connection.connect();
int fileLength = connection.getContentLength();
Log.d("dt", "zz "+path+" data length is:" + fileLength);
fos = new FileOutputStream(outfile);
fis = new FileInputStream(outfile);
encipher = Cipher.getInstance("AES");
encipher.init(Cipher.ENCRYPT_MODE, secretKey);
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(outfile);
cis = new CipherInputStream(fis, encipher);
byte data[] = new byte[8 * 1024];
total = downloaded;
// total = 0;
fileLength+=downloaded;
int count;
while ((count = input.read(data)) !=-1) {
total += count;
progpercent = (int) (total * 100 / fileLength);
publishProgress(progpercent, total); Log.d("dt", "zz path:"+path+" total:" + total+" file length(should be full):" + fileLength);
output.write(data, 0, count);
if(isCancelled())break;
}
output.flush();
output.close();
input.close();
更新:既然我弄清楚了我的主要问题的答案是什么,另一个问题是,即使在 fileoutputStream 中使用append=true,写入的文件也会覆盖当前的文件,我不知道为什么......有什么建议吗?
最佳答案
在暂停下载之前跟踪已下载的大小,并在恢复功能中,您可以确保从总量中减去暂停之前已下载的量,以获得剩余下载量。
connection.setRequestProperty("Range", "bytes=" + (total - downloaded) + "-");}
关于java - SetRequestProperty 有效,但下载完整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57132872/
尝试使用具有暂停/恢复功能的“输入/输出流”进行下载。问题是当我将requestproperty设置为我下载的数量时:connection.setRequestProperty(“Range”,“by
我正在开发一个 Android 应用程序来研究 URLConnection 的使用并获取 JSON 格式的数据。 我发现了许多很好的资源和如何编码的示例 在哪里可以找到所有有效 RequestProp
我正在编写一个 HTTP 客户端,它需要解析来自网络服务器的响应,并且我遇到了(另一个)问题。 我发现有一个页面我被重定向到他们的移动内容门户:示例:www.example.com/m/public。
我在Android中实现POST请求,上传图片到服务成功。 我没有使用setRequestProperty函数;但是我想知道这个函数的作用是什么。 这是代码: URL url = new URL("h
我正在使用 httpurlconnection 类,现在我转向 volley 如何放置授权 token HttpURLConnection connection = (HttpURLConnecti
假设我正在与网络服务器进行 HTTP 通信,我将接受 html 或文本,但更喜欢 html。换句话说,标题应该说(我认为!) 接受:text/html, text/* 我使用的是 Java,所以我有一
我正在尝试用 Java 发出 get 请求。但是,当我运行这段代码时, URL urlForGetRequest = new URL("my_url"); String readLine = nu
URL url = new URL("http://www.example.com/comment"); HttpURLConnection connection = (HttpURLConnecti
我有一个 Android 应用程序需要在连接中设置请求属性。这是我的代码: URL url = new URL(sUrl); HttpURLConnection connection = (Htt
我正在努力将授权 token 设置为 Alamofire Swift 中的连接请求属性。 我尝试在 header 中发送身份验证 token 并能够实现这一目标。 在android中,我们将身份验证
HTTPConnection连接方法 设置请求属性 conn.setRequestProperty("",""); 对于不同的 URL,我有不同的 header 。所以,它在我的项目中没有修复。 我需
这里的代码是一个普通的 Java 应用程序,而不是 android 应用程序,它被设计为将 C2DM 消息发送到具有 YOUR_REGISTRATION_STRING 的设备作为具有 auth_key
我在尝试按范围读取远程文件时遇到困难。 根据以下跟踪声音,setRequestProperty 没有执行其工作(InputStream 长度对我来说是不行的,除了一个..第一个???)? Task R
我查看了 android studio 中 URLConnection.setRequestProperty() 的源代码,它似乎没有设置任何内容: public void setRequestPro
我创建了一个类,我正在创建一个 HttpURLConnection对象并将该对象传递给另一个方法,如果它满足以下条件: 在这门课中,我通过了 username , password和 senderId
代码如下: String Surl = "http://mysite.com/somefile"; String charset = "UTF-8"; query = String.format("p
我正在尝试将 Java 应用程序转换为 C++,我正在为我的请求使用 cURL。下面是java代码;我想知道如何复制 connection.setRequestProperty() 方法。 conne
我有一个问题。当我尝试这样做时 connection.setRequestProperty("Sample", "Sample data \n"); 我得到 java.lang.IllegalArgu
HttpURLConnection con = null; Response response = new Response(); String TAG = "Http
我收到 java.lang.IllegalStateException: java.lang.IllegalStateException: Cannot set request property af
我是一名优秀的程序员,十分优秀!