[英]Encode object in Java decode in Android
Java和Android Base64編碼/解碼之間有什么區別嗎? 我正在嘗試在我的Java服務器上編碼一個對象,並在我的Android應用程序上解碼,但是卻得到了完全不同的東西。 (我知道可以用JSON完成)。
在JAVA服務器上:
public static String toString( Serializable o ) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( o );
oos.close();
return Base64.getEncoder().encodeToString(baos.toByteArray());
}
在Android應用上:
public static Object fromString( String s ) throws IOException, ClassNotFoundException {
byte [] data = Base64.decode( s, Base64.NO_WRAP);
ObjectInputStream ois = new ObjectInputStream(
new ByteArrayInputStream( data ) );
Object o = ois.readObject();
ois.close();
return o;
}
一些數據:
測試對象是
new String("igor")
encoded in java : rO0ABXQABGlnb3I=
decoded in android : data = [-84 -19 0 5 116 0 4 105 103 111 114]
該函數粉碎ois.readObject();。
還有其他方法可以將對象從服務器發送到客戶端嗎?
要將對象從Java服務器發送到android應用,請執行以下操作:
讀取已發送的對象:
Myclass m = (Myclass) ObjectInputStream.readObject();
請注意,此方法可以使用套接字完成,如果要通過http發送,則可以將其作為json格式發送,並使用Gson庫將json字符串轉換為對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.