aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorFicus Kirkpatrick <ficus@android.com>2015-02-20 17:23:18 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-02-20 17:23:18 +0000
commitee454371157d9a3fb74b70ee8ba93cf96559acf3 (patch)
treef4751de1398a2e8ec8dda407282903506998ccf4 /src/main/java
parent9cb6643f2ae027fefd682e7940009fb4f8f0721e (diff)
parent6bafd7d28fc7947f263feb7134fc8a70084357c3 (diff)
downloadvolley-ee454371157d9a3fb74b70ee8ba93cf96559acf3.tar.gz
Merge "Change the default character encoding for JSON responses to UTF-8"
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/android/volley/toolbox/HttpHeaderParser.java20
-rw-r--r--src/main/java/com/android/volley/toolbox/JsonArrayRequest.java4
-rw-r--r--src/main/java/com/android/volley/toolbox/JsonObjectRequest.java4
-rw-r--r--src/main/java/com/android/volley/toolbox/JsonRequest.java4
4 files changed, 22 insertions, 10 deletions
diff --git a/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java b/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java
index da04490..7306052 100644
--- a/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java
+++ b/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java
@@ -131,10 +131,14 @@ public class HttpHeaderParser {
}
/**
- * Returns the charset specified in the Content-Type of this header,
- * or the HTTP default (ISO-8859-1) if none can be found.
+ * Retrieve a charset from headers
+ *
+ * @param headers An {@link java.util.Map} of headers
+ * @param defaultCharset Charset to return if none can be found
+ * @return Returns the charset specified in the Content-Type of this header,
+ * or the defaultCharset if none can be found.
*/
- public static String parseCharset(Map<String, String> headers) {
+ public static String parseCharset(Map<String, String> headers, String defaultCharset) {
String contentType = headers.get(HTTP.CONTENT_TYPE);
if (contentType != null) {
String[] params = contentType.split(";");
@@ -148,6 +152,14 @@ public class HttpHeaderParser {
}
}
- return HTTP.DEFAULT_CONTENT_CHARSET;
+ return defaultCharset;
+ }
+
+ /**
+ * Returns the charset specified in the Content-Type of this header,
+ * or the HTTP default (ISO-8859-1) if none can be found.
+ */
+ public static String parseCharset(Map<String, String> headers) {
+ return parseCharset(headers, HTTP.DEFAULT_CONTENT_CHARSET);
}
}
diff --git a/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java b/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java
index b1eae80..e932a61 100644
--- a/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java
+++ b/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java
@@ -45,8 +45,8 @@ public class JsonArrayRequest extends JsonRequest<JSONArray> {
@Override
protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) {
try {
- String jsonString =
- new String(response.data, HttpHeaderParser.parseCharset(response.headers));
+ String jsonString = new String(response.data,
+ HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
return Response.success(new JSONArray(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
diff --git a/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java b/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java
index 74821cb..2991898 100644
--- a/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java
+++ b/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java
@@ -63,8 +63,8 @@ public class JsonObjectRequest extends JsonRequest<JSONObject> {
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
- String jsonString =
- new String(response.data, HttpHeaderParser.parseCharset(response.headers));
+ String jsonString = new String(response.data,
+ HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
return Response.success(new JSONObject(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
diff --git a/src/main/java/com/android/volley/toolbox/JsonRequest.java b/src/main/java/com/android/volley/toolbox/JsonRequest.java
index f11ac14..95f4ecb 100644
--- a/src/main/java/com/android/volley/toolbox/JsonRequest.java
+++ b/src/main/java/com/android/volley/toolbox/JsonRequest.java
@@ -32,8 +32,8 @@ import java.io.UnsupportedEncodingException;
* @param <T> JSON type of response expected
*/
public abstract class JsonRequest<T> extends Request<T> {
- /** Charset for request. */
- private static final String PROTOCOL_CHARSET = "utf-8";
+ /** Default charset for JSON request. */
+ protected static final String PROTOCOL_CHARSET = "utf-8";
/** Content type for request. */
private static final String PROTOCOL_CONTENT_TYPE =