aboutsummaryrefslogtreecommitdiff
path: root/integration
diff options
context:
space:
mode:
authorSam Judd <judds@google.com>2014-09-13 11:50:33 -0700
committerSam Judd <judds@google.com>2014-09-13 15:44:34 -0700
commit6b082ebd7480c5418c20b1d539bfa16912650c50 (patch)
treeadf75ace92f29572e84dfe70470eec3a9a7f6c7a /integration
parent051069671413f8b66a1b237a8f682aa6c1b50275 (diff)
downloadglide-6b082ebd7480c5418c20b1d539bfa16912650c50.tar.gz
Escape unsafe characters in urls.
Fixes #133
Diffstat (limited to 'integration')
-rw-r--r--integration/volley/src/androidTest/java/com/bumptech/glide/integration/volley/VolleyStreamFetcherServerTest.java3
-rw-r--r--integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyStreamFetcher.java15
-rw-r--r--integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyUrlLoader.java2
3 files changed, 13 insertions, 7 deletions
diff --git a/integration/volley/src/androidTest/java/com/bumptech/glide/integration/volley/VolleyStreamFetcherServerTest.java b/integration/volley/src/androidTest/java/com/bumptech/glide/integration/volley/VolleyStreamFetcherServerTest.java
index 8d50837e..e70c6165 100644
--- a/integration/volley/src/androidTest/java/com/bumptech/glide/integration/volley/VolleyStreamFetcherServerTest.java
+++ b/integration/volley/src/androidTest/java/com/bumptech/glide/integration/volley/VolleyStreamFetcherServerTest.java
@@ -8,6 +8,7 @@ import com.android.volley.VolleyError;
import com.android.volley.toolbox.Volley;
import com.bumptech.glide.Priority;
import com.bumptech.glide.load.data.DataFetcher;
+import com.bumptech.glide.load.model.GlideUrl;
import com.squareup.okhttp.mockwebserver.MockResponse;
import com.squareup.okhttp.mockwebserver.MockWebServer;
import org.junit.After;
@@ -196,7 +197,7 @@ public class VolleyStreamFetcherServerTest {
return super.get();
}
};
- return new VolleyStreamFetcher(requestQueue, url.toString(), requestFuture);
+ return new VolleyStreamFetcher(requestQueue, new GlideUrl(url.toString()), requestFuture);
}
private static String isToString(InputStream is) throws IOException {
diff --git a/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyStreamFetcher.java b/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyStreamFetcher.java
index 8b9e5f92..d78723d8 100644
--- a/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyStreamFetcher.java
+++ b/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyStreamFetcher.java
@@ -7,24 +7,27 @@ import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.bumptech.glide.Priority;
import com.bumptech.glide.load.data.DataFetcher;
+import com.bumptech.glide.load.model.GlideUrl;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
+import java.lang.reflect.Method;
/**
* A DataFetcher backed by volley for fetching images via http.
*/
public class VolleyStreamFetcher implements DataFetcher<InputStream> {
private final RequestQueue requestQueue;
- private final String url;
+ private final GlideUrl url;
private VolleyRequestFuture<InputStream> requestFuture;
@SuppressWarnings("unused")
- public VolleyStreamFetcher(RequestQueue requestQueue, String url) {
+ public VolleyStreamFetcher(RequestQueue requestQueue, GlideUrl url) {
this(requestQueue, url, null);
}
- public VolleyStreamFetcher(RequestQueue requestQueue, String url, VolleyRequestFuture<InputStream> requestFuture) {
+ public VolleyStreamFetcher(RequestQueue requestQueue, GlideUrl url,
+ VolleyRequestFuture<InputStream> requestFuture) {
this.requestQueue = requestQueue;
this.url = url;
this.requestFuture = requestFuture;
@@ -35,7 +38,9 @@ public class VolleyStreamFetcher implements DataFetcher<InputStream> {
@Override
public InputStream loadData(Priority priority) throws Exception {
- GlideRequest request = new GlideRequest(url, requestFuture, glideToVolleyPriority(priority));
+ // Make sure the string url safely encodes non ascii characters.
+ String stringUrl = url.toURL().toString();
+ GlideRequest request = new GlideRequest(stringUrl, requestFuture, glideToVolleyPriority(priority));
requestFuture.setRequest(requestQueue.add(request));
@@ -49,7 +54,7 @@ public class VolleyStreamFetcher implements DataFetcher<InputStream> {
@Override
public String getId() {
- return url;
+ return url.toString();
}
@Override
diff --git a/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyUrlLoader.java b/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyUrlLoader.java
index b08b0224..b2093ef5 100644
--- a/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyUrlLoader.java
+++ b/integration/volley/src/main/java/com/bumptech/glide/integration/volley/VolleyUrlLoader.java
@@ -67,6 +67,6 @@ public class VolleyUrlLoader implements ModelLoader<GlideUrl, InputStream> {
@Override
public DataFetcher<InputStream> getResourceFetcher(GlideUrl url, int width, int height) {
- return new VolleyStreamFetcher(requestQueue, url.toString(), new VolleyRequestFuture<InputStream>());
+ return new VolleyStreamFetcher(requestQueue, url, new VolleyRequestFuture<InputStream>());
}
}