Ich habe einen Code, der anscheinend gut funktioniert bis Android 6.0, für die Handhabung von Sonderzeichen wie schwedische Zeichen. Aber das funktioniert nicht gut in Android N 7.0 Version, jede Lösung, auch HTTP.CONTENT_TYPE ist veraltet. Dies ist die zusätzliche Codezeile, die mir geholfen, es bis zu Android 6,0 Sonderzeichen Handhabung in android Volley Android-N-Version
response.headers.put(HTTP.CONTENT_TYPE, response.headers.get("content-type"));
Ab jetzt bin wie A, A, Ä, ä, ö, ö, als "& # 1234 bin immer Charakter arbeiten zu machen "usw. Art von Wert ist unter der Antwort. Jede Änderung oder aktive antidepricated Codes, wäre hilfreich ,,
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
try {
Response<T> resp = null;
//handling special character's and content type based on request type
//http may be deprecated, but we are handling it over org.apache library in gradle
response.headers.put(HTTP.CONTENT_TYPE, response.headers.get("content-type"));
String json = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
Gson gson = new GsonBuilder().create();
switch (mJsonResponseType) {
case JSON_OBJECT:
resp = Response.success(gson.fromJson(json, mResponseClass), HttpHeaderParser.parseCacheHeaders(response));
break;
case JSON_ARRAY:
// NOTE: For this to work properly the mResponseClass must be set to an array type, e.g. MyClass[]
resp = (Response<T>) Response.success(gson.fromJson(json, mResponseClass), HttpHeaderParser.parseCacheHeaders(response));
break;
default:
resp = (Response<T>) Response.success(json, HttpHeaderParser.parseCacheHeaders(response));
break;
}
return resp;
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JsonSyntaxException e) {
return Response.error(new ParseError(e));
}
}
Was bedeutet response.headers.get ("Content-Type") zurückgeben? Und welches ist die erwartete Zeichencodierung? Die Website ist eine. – Juan
"Content-Type" -> "application/json; charset = utf-8", nun, es benötigt das gleiche Format, das kommt, komisch –
versuche String zu ersetzen json = new String (response.data, HttpHeaderParser.parseCharset (response.headers)); mit String json = new String (response.data, "UTF-8")); – Juan