使用 RestKit 0.2x 将文件作为单部分文档发布

Posted

技术标签:

【中文标题】使用 RestKit 0.2x 将文件作为单部分文档发布【英文标题】:POSTing file as a single-part document with RestKit 0.2x 【发布时间】:2014-10-31 17:44:37 【问题描述】:

我想使用 RestKit 0.23.3 发布一个文件。

我已经用这个方法做了一些实验

RKObjectManager multipartFormRequestWithObject:method:path:parameters:constructingBodyWithBlock:

但这不是我想要的。 我需要将文件作为单个部分请求发布。

POST /some_url HTTP/1.1
Host: ...
User-Agent: ...
Accept: application/json
Accept-Encoding: gzip, deflate
Content-Type: text/plain
Content-Length: 8

test123

我正在尝试通过 RestKit 发布此请求,因为服务器返回一个 JSON 对象作为响应。

我还发现了一个discussion,它暗示了以下内容

NSData *data = UIImageJPEGRepresentation(photo, 0.75);
RKRequestSerialization *serialization = [RKRequestSerialization serializationWithData:data MIMEType:@"image/jpeg"];
[[RKClient sharedClient] put:resourcePath params:serialization delegate:self];

然而,这个 sn-p 似乎只适用于旧版本的 RestKit。 RestKit 0.2x 是否有任何等效代码?

如果 MIMEType 是自动检测的就好了。我的输入是 NSURL 的一个实例(从 iCloud 导入的文件)。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

创建您要发送的数据并使用它来创建NSURLRequest。您需要完成所有工作才能做到这一点,但由于您的数据是一个文件,因此应该不费吹灰之力。然后使用您的对象管理器中的objectRequestOperationWithRequest:success:failure:managedObjectRequestOperationWithRequest:managedObjectContext:success:failure: 创建一个对象请求操作并将其加入队列。

这样,RestKit 将发送您的请求并处理任何响应(假设您已配置响应描述符等)。

【讨论】:

非常简单。我试图在 RestKit 中找到一些合适的方法,但忽略了我可以手动创建 NSURLRequest 的实例。谢谢。 :)

以上是关于使用 RestKit 0.2x 将文件作为单部分文档发布的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 0.2x 同时 RKManagedObjectRequestOperation

如何在 RESTkit 0.2 中设置缓存策略

无法让 RestKit 0.2 发布参数

Restkit 0.20.x cocoapods 安装问题 - 编译但找不到 RestKit 的导入

使用 RestKit 0.2 从 CoreData 获取本地数据

Restkit 0.2 postObject 总是返回 request.body=(null)