1

WCFサービスを使用してiPhoneからWebサイトにファイルをアップロードしようとしています。WCFサービスには、これ以外にiPhoneから正常に呼び出すことができるメソッドがたくさんあります。

[OperationContract]
[WebInvoke(Method = "POST",
   RequestFormat = WebMessageFormat.Json,
   ResponseFormat = WebMessageFormat.Json,
   BodyStyle = WebMessageBodyStyle.Bare,
   UriTemplate = "UploadFileBinary")]
UploadFileResponse jsonUploadFile(UploadFileRequest request);

UploadFileRequestには、FileBinaryDataとFileNameのbyte[]とstringがそれぞれ含まれています。

問題は、ファイルデータをNSDataオブジェクトとして持っていて、それをJSON互換形式に変換する方法がわからないことです。私はいくつかの提案を試しましたが、どれもうまくいきませんでした。

4

2 に答える 2

2

答えは、WCFデータコントラクトを変更し、文字列型のデータメンバーを追加することです。

iPhone側ではNSDataをbase64文字列としてエンコードし、WCF側では文字列をデコードしてバイト配列を取得します。

于 2013-02-07T06:40:02.487 に答える
1

データで表されるJSON文字列をお探しですか?もしそうなら...

NSString *string = [NSString stringWithUTF8String:[data bytes]];

または、JSONが解析後に表す実際のNSObjectを探していますか?それも簡単です...

NSError *error;
id parse = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
于 2013-02-01T18:48:57.657 に答える