添加断点判断

This commit is contained in:
AriaLyy
2016-12-30 19:23:02 +08:00
parent d9107ad23b
commit 58afab572c

View File

@ -14,7 +14,6 @@
* limitations under the License. * limitations under the License.
*/ */
package com.arialyy.aria.core.task; package com.arialyy.aria.core.task;
import android.content.Context; import android.content.Context;
@ -30,7 +29,10 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.ProtocolException; import java.net.ProtocolException;
import java.net.URL; import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -198,6 +200,7 @@ final class DownloadUtil implements IDownloadUtil {
URL url = new URL(downloadUrl); URL url = new URL(downloadUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); HttpURLConnection conn = (HttpURLConnection) url.openConnection();
setConnectParam(conn); setConnectParam(conn);
conn.setRequestProperty("Range", "bytes=" + 0 + "-");
conn.setConnectTimeout(mConnectTimeOut * 4); conn.setConnectTimeout(mConnectTimeOut * 4);
conn.connect(); conn.connect();
int len = conn.getContentLength(); int len = conn.getContentLength();
@ -206,7 +209,9 @@ final class DownloadUtil implements IDownloadUtil {
return; return;
} }
int code = conn.getResponseCode(); int code = conn.getResponseCode();
if (code == 200) { //https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
//206支持断点
if (code == HttpURLConnection.HTTP_PARTIAL) {
int fileLength = conn.getContentLength(); int fileLength = conn.getContentLength();
//必须建一个文件 //必须建一个文件
CommonUtil.createFile(filePath); CommonUtil.createFile(filePath);
@ -296,6 +301,9 @@ final class DownloadUtil implements IDownloadUtil {
mFixedThreadPool.execute(task); mFixedThreadPool.execute(task);
} }
} }
} else if (code == HttpURLConnection.HTTP_OK) {
//在conn.setRequestProperty("Range", "bytes=" + 0 + "-");下200为不支持断点状态
Log.w(TAG, "该下载链接不支持断点下载");
} else { } else {
failDownload("下载失败,返回码:" + code); failDownload("下载失败,返回码:" + code);
} }