From 423a554acc9a30a389183811578c9f0143880ec7 Mon Sep 17 00:00:00 2001 From: H Date: Wed, 4 Jul 2018 18:28:48 +0430 Subject: [PATCH] Add SetProxy --- .../downloadmanager/DownloadDispatcher.java | 5 ++++- .../thin/downloadmanager/DownloadRequest.java | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadDispatcher.java b/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadDispatcher.java index a6ff0bc..4214755 100644 --- a/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadDispatcher.java +++ b/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadDispatcher.java @@ -1,6 +1,7 @@ package com.thin.downloadmanager; import android.os.Process; +import android.webkit.URLUtil; import com.thin.downloadmanager.util.Log; @@ -12,10 +13,12 @@ import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; +import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.SocketTimeoutException; import java.net.URL; import java.net.URLConnection; +import java.net.Proxy; import java.util.HashMap; import java.util.Timer; import java.util.TimerTask; @@ -134,7 +137,7 @@ private void executeDownload(DownloadRequest request, String downloadUrl) { HttpURLConnection conn = null; try { - conn = (HttpURLConnection) url.openConnection(); + conn = (HttpURLConnection) url.openConnection(request.getProxy()); File destinationFile = new File(request.getDestinationURI().getPath()); if (destinationFile.exists()) { mDownloadedCacheSize = (int) destinationFile.length(); diff --git a/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadRequest.java b/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadRequest.java index 32b8db9..eb908f2 100644 --- a/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadRequest.java +++ b/ThinDownloadManager/src/main/java/com/thin/downloadmanager/DownloadRequest.java @@ -1,7 +1,10 @@ package com.thin.downloadmanager; import android.net.Uri; +import android.util.Patterns; +import java.net.InetSocketAddress; +import java.net.Proxy; import java.util.HashMap; /** @@ -71,6 +74,8 @@ public enum Priority { private boolean isDownloadResumable = false; + private Proxy mProxy= Proxy.NO_PROXY; + public DownloadRequest(Uri uri) { if (uri == null) { throw new NullPointerException(); @@ -103,6 +108,21 @@ public DownloadRequest setPriority(Priority priority) { return this; } + /** + * set proxy so the request will be sent through this proxy + * @param host + * @param port + * @return request + */ + + public DownloadRequest setProxy(String host,int port){ + this.mProxy=new Proxy(Proxy.Type.HTTP,InetSocketAddress.createUnresolved(host,port)); + return this; + } + public Proxy getProxy(){ + return mProxy; + } + /** * Adds custom header to request *