1

我正在尝试使用 WCF 服务将文件从 iPhone 上传到网站。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 回答