2012-01-09 47 views
2

下面,我的web服務之一的回報(這是爲Base64 PDF):Base64元素(來自xml)太大而無法在字符串中儲存?

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <ns2:getVoucherResponse xmlns:ns2="http://mywebservice.com/"> 
     <voucher>JVBERi0xLjMKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFIKL1BhZ2Vz 
IDMgMCBSCi9PcGVuQWN0aW9uIDggMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9PdXRs 
aW5lcyAvQ291bnQgMCA+PgplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0tpZHMgWzYg 
MCBSCjE4IDAgUgpdCi9Db3VudCAyCi9SZXNvdXJjZXMgPDwKL1Byb2NTZXQgNCAwIFIKL0ZvbnQg 
PDwgCi9GMSA5IDAgUgovRjIgMTIgMCBSCj4+Ci9YT2JqZWN0IDw8IAovSTEgMTAgMCBSCi9JMiAx 
MSAwIFIKL0kzIDEzIDAgUgovSTQgMTUgMCBSCi9JNSAxNyAwIFIKL0k2IDIwIDAgUgo+Pgo+Pgov 
TWVkaWFCb3ggWzAuMDAwIDAuMDAwIDU5NS4yODAgODQxLjg5MF0KID4+CmVuZG9iago0IDAgb2Jq 
ClsvUERGIC9UZXh0IC9JbWFnZUMgXQplbmRvYmoKNSAwIG9iago8PAovQ3JlYXRvciAoZG9tcGRm 
KQovQ3JlYXRpb25EYXRlIChEOjIwMTIwMTA5MTA0NzEwKzAxJzAwJykKL01vZERhdGUgKEQ6MjAx 
MjAxMDkxMDQ3MTArMDEnMDAnKQo+PgplbmRvYmoKNiAwIG9iago8PCAvVHlwZSAvUGFnZQovUGFy 
ZW50IDMgMCBSCi9Db250ZW50cyA3IDAgUgo+PgplbmRvYmoKNyAwIG9iago8PCAvRmlsdGVyIC9G 
bGF0ZURlY29kZQovTGVuZ3RoIDE3MjEgPj4Kc3RyZWFtCnic3VnNchpHEL7zFHOzXbFH8//jU5DA 
llIYHMCuSkU5rGAt4QCLF1Dst/Hr5E2inPMA6f2bXdhZCbglVhlJPd093V//TM+oRTAjBMEnSz+5 
RPFt63yMFCZAN4xiqygaT1F3nJClsZgZz4LN+CnFwpG/tKTWWCb64YtKhbUkOadSAlNB0GTROrui 
qBO1fm5SA2RBUjWaMKxpna6swUqThH72hsJOGH7+hNDzy4vB8P3gBRp/3hMwDCvGnQBQM4FxOH+N 
KvwN9nBOMeFgkHQLu3q6SzQJ1mj6bBvfhstJ+BItwngyQ9MQLaPtGk2i5SaYbMIYMXHGxB0KN9Vt 
uQFNgiPNNebW1vXrM/0ZBVv0A+fo+jm5fkGR1uAWohpx8ZQHJKVVP7OgFzAb7YffCKyVdtbwwpqP 
gw8Xl90heoXOB33UefbnxWW7/7Zbx10ri7lhdX/eFeis4od1uEyAmYToJloChA+Tu2B5G6LpX2t0 
H23iEAVxPLt/CJ2bTUncED1pVGrNAaDUicO3rTyDwSdjCVo4fQVlXqFQDFSgFDLF7+jTE1YrobGh 
xkElipy+Wn6K4kWwmQE4l9EmnFej7TaWYrdSwFUGxacY1C8tC5QxmfkGX8XPOauA+KqiQpmrUA6W 
1DUlCwkhXaC7W3NO0sJXjOxJFAvEQFMxvgXAQOflxVLDMgyG4eQOMgb+o+0S3f2ToPAanbd7vXbn 
qj9Cl4Nxt7dTULlGaRnmRNU1vhv0x++7vd5Vd1hNW2gllKtUjFX6hRNze3xpJRFSLGt12Y9uU80x 

[...] 

tTpDkmdIevmFgJAzL3/SkhOYUnUaU6nrcEnoRkaIupXDwYdxF3W66KI97A/6L5OdNK346VQrjokV 
HtWQG5KZuuqPs/k8BOzfQUNbhfP5DELiU8yh+WtPiIVN0ojVFY/TkBLCuVDAaKk16Ay9Cb6i194N 
oJcIxTwbaAZFqeobdBfBLNliUVqOgzCOVlG8+fEmmM+D6Wy5xpNo4dlOmOT4UuV2xUItyRWxefbv 
lYVUWb1wUMW05yzacZOyrCvwvV7mX/D2sqyvcJkdvGXbKijzHUrWyEqZ7Pcn2xZXcDIqT9saQl+P 
77O2NYMW5utaXGnfVJHUha40LUAoLxyDBTcpZDkbIywrG+HKBkj5MlSHKquDFZZ9r/YJKw5nLvYF 
6C2r5EKFLorDjlV0vO8Pm08uOF8gkw36A9z7Cf2KfoPv01ahEnoshfa1gJBgqkrCHI1S83Mq7Myt 
x3rksR5aHK+0NscrumIklUeCQcIKYut+jcLbBZzdMNxMw9LBJl8YzGBQ3eALDDuGlYTcF0cVYB85 
</voucher> 
     </ns2:getVoucherResponse> 
    </soap:Body> 
</soap:Envelope> 

我通過一個簡單的HTTP協議發送我的web請求和我收到以同樣的方式迴應。 我試圖解析xml響應並將答案存儲在字符串中,但似乎答案太大。

什麼是最好的是股票的元素憑證,然後解碼的base64?

任何幫助表示讚賞;)!

+0

你會考慮解析使用的SAXParser的事「手動」? – Jens 2012-01-09 14:44:39

回答

1

還有就是在Android 2.2+(API 8)一個Base64庫,但如果你希望你的項目是可供早期版本中,您可以將代碼的Android圖書館添加到您的項目,你有庫的源代碼Base64.java: http://hi-android.info/src/android/util/Base64.java.html

+0

其實,你應該考慮(默認),以包括Base64編碼工具的副本 - 它像往常一樣說是隱藏了大部分流解碼所需的有用部分(例如'Base64.Decoder/Encoder'或API的一個可怕的雜牌'Base64OutputStream'的ctor也可以解碼而不是_just_編碼)。 – Jens 2012-01-09 15:01:25

+0

上週我和你有同樣的問題,我所做的是在我的項目中包含Base64.java文件,但我還沒有遇到任何問題。在文件中已經包含Base64.java方法來解碼/編碼String/byte []。什麼是Base64OutputStream沒有看到任何問題,因爲Base64不使用這個類。 – xagema 2012-01-09 19:35:50

+0

android.util.Base64類中公開的靜態方法取決於兩個內部的包 - 私有狀態類,它們可以進行塊編碼和解碼 - 也就是說,您不必將整個Base64編碼值加載到字符串或字節數組中解碼它。 Base64OutputStream的公開的構造函數不允許你做即時解碼,只有編碼,這是愚蠢的,考慮到谷歌隱藏在該特定類中解碼的API。 – Jens 2012-01-09 21:10:55

相關問題