我使用XML將java服務器中的字節數組傳遞給iPad客戶端。服務器正在使用xstream將字節數組轉換爲帶有EncodedByteArrayConverter的XML,後者應該將數組轉換爲Base 64.使用xstream,我可以將xml解碼回java客戶端中正確的字節數組,但在iPad客戶端中,我收到了無效的長度錯誤。爲了解碼,我使用this頁面底部的代碼。字符串的長度確實是而不是是4的倍數,所以我的字符串肯定有些奇怪 - 儘管由於xstream可以對它進行解碼,所以我猜測我只需要在iPad端對讓它解碼。我已經嘗試在字符串的末尾切斷填充以將其縮小到合適的大小,並且確實允許解碼器正常工作,但是我最終得到的JPG的頭部無效,並且不可顯示。xstream和iPhone SDK之間的Base64編解碼器/解碼器
在服務器端,我用下面的代碼:
Object rtrn = getByteArray();
XStream xstream = new XStream();
String xml = xstream.toXML(rtrn);
在客戶端,我打電話從XML解析回調上面的解碼器是這樣的:
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"Converting data; string length: %d", [string length]);
//NSLog(@"%@", string);
NSData *data = [Base64 decode:string];
NSLog(@"converted data length: %d", [data length]);
}
任何想法可能會出錯?