Objective c 向只接受JSON的web服务发送UIImage(通过RestKit)

Objective c 向只接受JSON的web服务发送UIImage(通过RestKit),objective-c,ios,json,uiimage,restkit,Objective C,Ios,Json,Uiimage,Restkit,向REST web服务发送UIImage对象时遇到问题 它只接受JSON作为输入。 我已经设置了所有的对象映射,它可以生成JSON 在它到达任何图像之前都很好 我阅读了关于分别加载图像的页面: 但这总是将内容类型从application/json更改为 应用程序/xxx表单url编码或其他内容 那么,在不使用RKParams的情况下实现这一点的最佳方法是什么 我在这里找到了另一个链接:它谈到了 RestKit,您可以从中使用propertiesForSerialization RKObjectM

向REST web服务发送UIImage对象时遇到问题 它只接受JSON作为输入。 我已经设置了所有的对象映射,它可以生成JSON 在它到达任何图像之前都很好

我阅读了关于分别加载图像的页面: 但这总是将内容类型从application/json更改为 应用程序/xxx表单url编码或其他内容

那么,在不使用RKParams的情况下实现这一点的最佳方法是什么

我在这里找到了另一个链接:它谈到了 RestKit,您可以从中使用propertiesForSerialization RKObjectMapable协议,但该协议和方法似乎不再适用 将在0.10.0中提供

新版本中是否有某种方式允许您替换 因此,带有base64编码数据的UIImage的内容是JSON 在尝试序列化之前是否安全


或者还有其他解决方案吗?谢谢你的帮助。谢谢

您是否尝试过使用RKParams并仅更改serializationMIMEType

    RKObjectManager* objectManager = [RKObjectManager objectManagerWithBaseURL:baseURL];;
    objectManager.serializationMIMEType = RKMIMETypeJSON;

您是否尝试过使用RKParams并仅更改serializationMIMEType

    RKObjectManager* objectManager = [RKObjectManager objectManagerWithBaseURL:baseURL];;
    objectManager.serializationMIMEType = RKMIMETypeJSON;

我想出了一个办法

我最终为每个UIImage创建了一个额外的NSString属性,这是我用来映射的,而不是实际的UIImage。然后在postObject之前,我为每个图像生成base64代码,并相应地填充NSString属性


这不是最好的方法,我仍然好奇地想看看别人的想法。

我找到了一种方法

我最终为每个UIImage创建了一个额外的NSString属性,这是我用来映射的,而不是实际的UIImage。然后在postObject之前,我为每个图像生成base64代码,并相应地填充NSString属性


这不是最好的方法,我仍然好奇地想看看其他人有什么想法。

我用RestKit保存到imageData属性并在base64中对图像进行编码

不过,这对于CoreData来说并不太好,因此我编写了它,以便在从base64编码的服务器获取图像时,它将图像保存到磁盘,然后将路径存储在Core数据中。然后,当将映像推送到服务器时,它会在磁盘上找到该文件,将其编码为base64,然后将其包含在JSON中


这不是一个完美的方法,但是如果你不经常来回发送图像,它会工作得很好。

我使用RestKit将图像保存到imageData属性并在base64中对图像进行编码

不过,这对于CoreData来说并不太好,因此我编写了它,以便在从base64编码的服务器获取图像时,它将图像保存到磁盘,然后将路径存储在Core数据中。然后,当将映像推送到服务器时,它会在磁盘上找到该文件,将其编码为base64,然后将其包含在JSON中


这不是一种完美的方法,但如果你不经常来回发送图像,它会非常有效。

是的。RKParams似乎使用多部分/表单编码覆盖任何对象管理器设置。真烦人,是的。RKParams似乎使用多部分/表单编码覆盖任何对象管理器设置。真烦人,好主意。那么,如何在磁盘上找到文件并编码到base64呢?这就是调用postObject之前所做的一切,postObject只知道使用imageData字段吗?我向managedObject添加了willSave方法。基本上,我的对象上有一个imagePath属性。RestKit将编码的图像数据映射到imagePath,但在willSave中,我截取数据,将其保存到磁盘,然后将路径存储到图像,而不是图像数据本身存储在imagePath中。那有用吗?好主意。那么,如何在磁盘上找到文件并编码到base64呢?这就是调用postObject之前所做的一切,postObject只知道使用imageData字段吗?我向managedObject添加了willSave方法。基本上,我的对象上有一个imagePath属性。RestKit将编码的图像数据映射到imagePath,但在willSave中,我截取数据,将其保存到磁盘,然后将路径存储到图像,而不是图像数据本身存储在imagePath中。这有用吗?