我正在创建一个与wcf服务对话的iphone客户端(我无法控制服务器,因此不能在此处进行任何更改。)
我需要将图像发送到此服务器,以及其他一些信息。它必须使用json发送。
我正在使用restkit发送和接收数据。
问题是,二进制数据必须作为字节数组发送。不是base64编码的字符串。
如何从UIimage获取看起来像这样的json字符串
“图片”:{ “内容”:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,.........
我愿意接受不使用restkit的解决方案。
答案 0 :(得分:0)
接收WCF服务的类型是什么?字节[]?
听起来很糟糕,但您可以尝试映射到NSNumber实现并创建它们的数组。
我认为这将序列化为:
“图片”:{ “内容”:[ “1”, “1”, “1” ...
因此您可能还需要自定义格式化程序。
答案 1 :(得分:0)
这是一个将字节数组转换为NSString的SO帖子。如果我正确理解该问题,请尝试将字节数组转换为字符串,然后将其添加到您的Feed中。 Objective-C - How can I convert Byte Array to NSString?
以下是代码所接受答案的摘录:
NSData *data = [[NSMutableData alloc] init];
uint8_t buffer[1024];
unsigned int len = 0;
len = [(NSInputStream *)stream read:buffer maxLength:1024];
if(len > 0)
{
[data appendBytes:&buffer length:len];
}
NSString *serverText = [[NSString alloc]
initWithData:data
encoding:NSASCIIStringEncoding];
NSLog(@"%@", serverText);
另外值得注意的是,一旦你将值输入你的json,请注意你不要超过你的json max string length值。
答案 2 :(得分:0)
感谢您的快速回复。
无法获得任何建议的解决方案,因此我们必须使用我们疯狂的人员技能,并使制作服务器端服务的公司改变其结束,以便我们可以发送base64编码的字符串。