2012年2月23日木曜日
バイナリデータのSOAPレスポンス
前項「SOAP レスポンスのパース」で受信したSOAPレスポンスが文字列の場合はResultの値をそのまま使えますが、バイナリデータの場合はbase64エンコードされた文字列で送られてくるため、これをデコードする必要があります。ところがiOS SDKにはこの機能が含まれていません。
BASE64エンコード/デコードのソースはいくつか見つかりましが、最初にダウンロードしたMatt Gallagher氏のソースをそのまま利用しています。ダウンロードしたソース中の次のふたつのファイルをプロジェクトに加えるだけです。
NSData+Base64.h
NSData+Base64.m
NSDataのCategoryでメソッドが追加されているので、次の要領でbase64のNSStringからNSDataオブジェクトを作れます。
NSData *binData = [NSData dataFromBase64String:soapResult];
BASE64エンコードしたバイナリデータとファイル名などのメタ情報をString配列として返すことができます。
関連Blog
iOS アプリからのSOAP/WebServiceへのアクセス
SOAP レスポンスの受信
SOAP レスポンスのパース
バイナリデータのSOAPレスポンス
SOAPリクエスト/レスポンスとの同期
<参照>
Base64 encoding options on the Mac and iPhone
AES128暗号化ライブラリ FBEncryptor 公開
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿