现在http文件下载将使用HEAD请求获取文件大小,配置文件增加 <useHeadRequest value=false/>
This commit is contained in:
@@ -131,15 +131,20 @@ import com.arialyy.aria.util.CommonUtil;
|
|||||||
private static Context convertContext(Object obj) {
|
private static Context convertContext(Object obj) {
|
||||||
if (obj instanceof Application) {
|
if (obj instanceof Application) {
|
||||||
return (Application) obj;
|
return (Application) obj;
|
||||||
} else if (obj instanceof Service) {
|
}
|
||||||
|
if (obj instanceof Service) {
|
||||||
return (Service) obj;
|
return (Service) obj;
|
||||||
} else if (obj instanceof Activity) {
|
}
|
||||||
|
if (obj instanceof Activity) {
|
||||||
return (Activity) obj;
|
return (Activity) obj;
|
||||||
} else if (CommonUtil.isFragment(obj.getClass())) {
|
}
|
||||||
|
if (CommonUtil.isFragment(obj.getClass())) {
|
||||||
return CommonUtil.getFragmentActivity(obj);
|
return CommonUtil.getFragmentActivity(obj);
|
||||||
} else if (obj instanceof Dialog) {
|
}
|
||||||
|
if (obj instanceof Dialog) {
|
||||||
return ((Dialog) obj).getContext();
|
return ((Dialog) obj).getContext();
|
||||||
} else if (obj instanceof PopupWindow) {
|
}
|
||||||
|
if (obj instanceof PopupWindow) {
|
||||||
return ((PopupWindow) obj).getContentView().getContext();
|
return ((PopupWindow) obj).getContentView().getContext();
|
||||||
}
|
}
|
||||||
ALog.e("Aria", "请使用download(this)或upload(this)");
|
ALog.e("Aria", "请使用download(this)或upload(this)");
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
- 修复一个正则表达式导致的文件名保存号异常问题 https://github.com/AriaLyy/Aria/issues/715
|
- 修复一个正则表达式导致的文件名保存号异常问题 https://github.com/AriaLyy/Aria/issues/715
|
||||||
- 修复一个匿名内部类中的内存溢出的问题 https://github.com/AriaLyy/Aria/issues/705
|
- 修复一个匿名内部类中的内存溢出的问题 https://github.com/AriaLyy/Aria/issues/705
|
||||||
- m3u8密钥下载地址转换器增加ts列表的url地址 https://github.com/AriaLyy/Aria/issues/718
|
- m3u8密钥下载地址转换器增加ts列表的url地址 https://github.com/AriaLyy/Aria/issues/718
|
||||||
|
- 现在http文件下载将使用HEAD请求获取文件大小,配置文件增加 <useHeadRequest value="false"/>
|
||||||
+ v_3.8.10 (2020/6/26)
|
+ v_3.8.10 (2020/6/26)
|
||||||
- fix bug https://github.com/AriaLyy/Aria/issues/703
|
- fix bug https://github.com/AriaLyy/Aria/issues/703
|
||||||
- fix bug https://github.com/AriaLyy/Aria/issues/702
|
- fix bug https://github.com/AriaLyy/Aria/issues/702
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import android.net.TrafficStats;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import com.arialyy.aria.core.AriaConfig;
|
import com.arialyy.aria.core.AriaConfig;
|
||||||
import com.arialyy.aria.core.common.CompleteInfo;
|
import com.arialyy.aria.core.common.CompleteInfo;
|
||||||
import com.arialyy.aria.core.common.RequestEnum;
|
import com.arialyy.aria.core.common.RequestEnum;
|
||||||
@@ -80,6 +81,10 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
|
|||||||
conn = ConnectionHelp.handleConnection(url, taskOption);
|
conn = ConnectionHelp.handleConnection(url, taskOption);
|
||||||
ConnectionHelp.setConnectParam(taskOption, conn);
|
ConnectionHelp.setConnectParam(taskOption, conn);
|
||||||
conn.setRequestProperty("Range", "bytes=" + 0 + "-");
|
conn.setRequestProperty("Range", "bytes=" + 0 + "-");
|
||||||
|
if (AriaConfig.getInstance().getDConfig().isUseHeadRequest()){
|
||||||
|
ALog.d(TAG, "head请求");
|
||||||
|
conn.setRequestMethod("HEAD");
|
||||||
|
}
|
||||||
conn.setConnectTimeout(mConnectTimeOut);
|
conn.setConnectTimeout(mConnectTimeOut);
|
||||||
conn.connect();
|
conn.connect();
|
||||||
handleConnect(conn);
|
handleConnect(conn);
|
||||||
@@ -333,6 +338,9 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
|
|||||||
ConnectionHelp.setConnectParam(taskOption, conn);
|
ConnectionHelp.setConnectParam(taskOption, conn);
|
||||||
conn.setRequestProperty("Cookie", cookies);
|
conn.setRequestProperty("Cookie", cookies);
|
||||||
conn.setRequestProperty("Range", "bytes=" + 0 + "-");
|
conn.setRequestProperty("Range", "bytes=" + 0 + "-");
|
||||||
|
if (AriaConfig.getInstance().getDConfig().isUseHeadRequest()){
|
||||||
|
conn.setRequestMethod("HEAD");
|
||||||
|
}
|
||||||
conn.setConnectTimeout(mConnectTimeOut);
|
conn.setConnectTimeout(mConnectTimeOut);
|
||||||
conn.connect();
|
conn.connect();
|
||||||
handleConnect(conn);
|
handleConnect(conn);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.arialyy.aria.core.config;
|
package com.arialyy.aria.core.config;
|
||||||
|
|
||||||
|
import com.arialyy.aria.core.AriaConfig;
|
||||||
import com.arialyy.aria.core.event.DGMaxNumEvent;
|
import com.arialyy.aria.core.event.DGMaxNumEvent;
|
||||||
import com.arialyy.aria.core.event.DSpeedEvent;
|
import com.arialyy.aria.core.event.DSpeedEvent;
|
||||||
import com.arialyy.aria.core.event.EventMsgUtil;
|
import com.arialyy.aria.core.event.EventMsgUtil;
|
||||||
@@ -63,22 +64,7 @@ public class DGroupConfig extends BaseTaskConfig implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public DownloadConfig getSubConfig() {
|
public DownloadConfig getSubConfig() {
|
||||||
if (subConfig == null) {
|
subConfig = AriaConfig.getInstance().getDConfig();
|
||||||
subConfig = new DownloadConfig();
|
|
||||||
subConfig.threadNum = 1;
|
|
||||||
subConfig.useBlock = false;
|
|
||||||
subConfig.buffSize = buffSize;
|
|
||||||
subConfig.caName = caName;
|
|
||||||
subConfig.caPath = caPath;
|
|
||||||
subConfig.connectTimeOut = connectTimeOut;
|
|
||||||
subConfig.iOTimeOut = iOTimeOut;
|
|
||||||
subConfig.isConvertSpeed = isConvertSpeed;
|
|
||||||
subConfig.maxSpeed = maxSpeed;
|
|
||||||
subConfig.queueMod = "now";
|
|
||||||
subConfig.reTryInterval = subReTryInterval;
|
|
||||||
subConfig.reTryNum = subReTryNum;
|
|
||||||
subConfig.updateInterval = updateInterval;
|
|
||||||
}
|
|
||||||
return subConfig;
|
return subConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,21 @@ public class DownloadConfig extends BaseTaskConfig implements Serializable {
|
|||||||
*/
|
*/
|
||||||
boolean useBlock = true;
|
boolean useBlock = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置http下载获取文件大小是否使用Head请求。true:使用head请求,false:使用默认的get请求
|
||||||
|
*/
|
||||||
|
boolean useHeadRequest;
|
||||||
|
|
||||||
|
public boolean isUseHeadRequest() {
|
||||||
|
return useHeadRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DownloadConfig setUseHeadRequest(boolean useHeadRequest) {
|
||||||
|
this.useHeadRequest = useHeadRequest;
|
||||||
|
save();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isUseBlock() {
|
public boolean isUseBlock() {
|
||||||
return useBlock;
|
return useBlock;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ public class XMLReader extends DefaultHandler {
|
|||||||
break;
|
break;
|
||||||
case "subFailAsStop": // 子任务失败时回调stop
|
case "subFailAsStop": // 子任务失败时回调stop
|
||||||
setField("subFailAsStop", checkBoolean(value) ? Boolean.valueOf(value) : false,
|
setField("subFailAsStop", checkBoolean(value) ? Boolean.valueOf(value) : false,
|
||||||
ConfigType.D_GROUP);
|
ConfigType.D_GROUP);
|
||||||
break;
|
break;
|
||||||
case "subReTryNum": // 子任务重试次数
|
case "subReTryNum": // 子任务重试次数
|
||||||
int subReTryNum = checkInt(value) ? Integer.parseInt(value) : 5;
|
int subReTryNum = checkInt(value) ? Integer.parseInt(value) : 5;
|
||||||
@@ -156,6 +156,10 @@ public class XMLReader extends DefaultHandler {
|
|||||||
int subReTryInterval = checkInt(value) ? Integer.parseInt(value) : 2000;
|
int subReTryInterval = checkInt(value) ? Integer.parseInt(value) : 2000;
|
||||||
setField("subReTryInterval", subReTryInterval, ConfigType.D_GROUP);
|
setField("subReTryInterval", subReTryInterval, ConfigType.D_GROUP);
|
||||||
break;
|
break;
|
||||||
|
case "useHeadRequest": // 是否使用head请求
|
||||||
|
boolean useHeadRequest = checkBoolean(value) ? Boolean.valueOf(value) : true;
|
||||||
|
setField("useHeadRequest", useHeadRequest, ConfigType.DOWNLOAD);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else if (mType == ConfigType.APP) {
|
} else if (mType == ConfigType.APP) {
|
||||||
String value = attributes.getValue("value");
|
String value = attributes.getValue("value");
|
||||||
|
|||||||
@@ -21,6 +21,10 @@
|
|||||||
<!--普通下载任务-->
|
<!--普通下载任务-->
|
||||||
<download>
|
<download>
|
||||||
|
|
||||||
|
<!--设置http下载获取文件大小是否使用Head请求。true:使用head请求,false:使用默认的get请求-->
|
||||||
|
<!--只适用于3.8.11以上的版本-->
|
||||||
|
<useHeadRequest value="true"/>
|
||||||
|
|
||||||
<!--设置任务最大下载速度,0表示不限速,单位为:kb-->
|
<!--设置任务最大下载速度,0表示不限速,单位为:kb-->
|
||||||
<maxSpeed value="128"/>
|
<maxSpeed value="128"/>
|
||||||
|
|
||||||
|
|||||||
@@ -364,7 +364,7 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
|||||||
|
|
||||||
static class KeyUrlConverter implements IKeyUrlConverter {
|
static class KeyUrlConverter implements IKeyUrlConverter {
|
||||||
|
|
||||||
@Override public String convert(String m3u8Url, String keyUrl) {
|
@Override public String convert(String m3u8Url, String tsListUrl, String keyUrl) {
|
||||||
ALog.d("TAG", "convertUrl....");
|
ALog.d("TAG", "convertUrl....");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,9 @@ public class HttpUploadActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
Aria.upload(this).getTaskList();
|
Aria.upload(this).getTaskList();
|
||||||
|
|
||||||
mEntity = Aria.upload(this).getFirstUploadEntity(FILE_PATH);
|
mEntity = Aria.upload(this).getFirstUploadEntity(FILE_PATH);
|
||||||
getBinding().pl.setInfo(mEntity);
|
if (mEntity != null){
|
||||||
|
getBinding().pl.setInfo(mEntity);
|
||||||
|
}
|
||||||
Aria.upload(this).register();
|
Aria.upload(this).register();
|
||||||
|
|
||||||
getBinding().pl.setBtListener(new ProgressLayout.OnProgressLayoutBtListener() {
|
getBinding().pl.setBtListener(new ProgressLayout.OnProgressLayoutBtListener() {
|
||||||
|
|||||||
Reference in New Issue
Block a user