2017-10-27 4 views
0

Ich habe ein Problem mit der Codierung einer Zeichenfolge. Lassen Sie mich zunächst den Zusammenhang erläutern:Base64-Codierung für Post in WebView

Ich muss einen Beitrag machen und den Inhalt in einem WebView laden. Für diese Anforderung muss ich webView.postUrl (String url, byte [] postData) verwenden.

Ich sah viele Beispiele mit dieser Methode zusammen mit EncodingUtils.getBytes ("StringToEncode", "Base64").

Die gute Nachricht ist, dass dies für mich funktioniert. Die schlechte Nachricht ist, dass diese Klasse ist veraltet und Sie müssen den nächsten Code in die gradle Datei hinzuzufügen:

android { 
    useLibrary 'org.apache.http.legacy' 
} 

ich dies vermeiden möchte und die Art und Weise zu verwenden, es sein sollte.

Soweit ich weiß, ist der Ersatz für diese veraltete Klasse android.util.Base64.

habe ich versucht, die folgenden Codes ohne Erfolg:

webView.postUrl("url", Base64.encode("paramsToEncode".getBytes(),Base64.DEFAULT)); 

webView.postUrl("url", Base64.encode("paramsToEncode".getBytes(StandardCharsets.UTF_8),Base64.DEFAULT)); 

Gemäß der Dokumentation von EncodingUtils:

Konvertiert die angegebene Zeichenfolge in einem Byte-Array. Wenn der Zeichensatz nicht unterstützt wird, wird der Standardsystemzeichensatz verwendet. Parameter: Daten - die zu codierende Zeichenkette - die gewünschte Zeichenkodierung Rückgabe: Das resultierende Byte-Array.

und die Dokumentation für Base64:

Eingangsbyte: Die Daten Flags int zu kodieren: steuert bestimmte Funktionen von die Ausgabe codiert. Passing STANDARD Ergebnisse in der Ausgabe, die auf RFC haftet 2045. Returns byte []

Ich weiß also nicht, was ich falsch mache. Wenn Sie mit dieser Art von Problem gekämpft haben, würde ich mich über Kommentare freuen :).

Antwort

0

nicht sicher, warum Ihr Beispiel nicht funktioniert, aber der Code unten scheint für mich zu arbeiten:

webView.postUrl(url, urlParams.getBytes(Charset.forName("UTF-8"))); 
+0

Obwohl es nicht die Antwort auf meine Frage ist, ist es die Antwort auf mein Problem ist! Vielen Dank. –