Skip to content

Commit 4804120

Browse files
committed
Fixed URLEncoding usage
1 parent ef0698e commit 4804120

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

library/src/main/java/com/loopj/android/http/AsyncHttpClient.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@
7373
import java.io.InputStream;
7474
import java.io.OutputStream;
7575
import java.io.PushbackInputStream;
76-
import java.io.UnsupportedEncodingException;
7776
import java.lang.reflect.Field;
7877
import java.net.URI;
79-
import java.net.URLEncoder;
78+
import java.net.URL;
79+
import java.net.URLDecoder;
8080
import java.util.Collections;
8181
import java.util.HashMap;
8282
import java.util.Iterator;
@@ -1229,10 +1229,13 @@ public static String getUrlWithQueryString(boolean shouldEncodeUrl, String url,
12291229

12301230
if (shouldEncodeUrl) {
12311231
try {
1232-
url = URLEncoder.encode(url, "UTF-8");
1233-
} catch (UnsupportedEncodingException e) {
1232+
String decodedURL = URLDecoder.decode(url, "UTF-8");
1233+
URL _url = new URL(decodedURL);
1234+
URI _uri = new URI(_url.getProtocol(), _url.getUserInfo(), _url.getHost(), _url.getPort(), _url.getPath(), _url.getQuery(), _url.getRef());
1235+
url = _uri.toASCIIString();
1236+
} catch (Exception ex) {
12341237
// Should not really happen, added just for sake of validity
1235-
Log.e(LOG_TAG, "getUrlWithQueryString encoding URL", e);
1238+
Log.e(LOG_TAG, "getUrlWithQueryString encoding URL", ex);
12361239
}
12371240
}
12381241

0 commit comments

Comments
 (0)