【发布时间】:2013-12-17 18:16:45
【问题描述】:
我正在尝试发布带有附件的对象。
NSMutableURLRequest *request =
[objectManager multipartFormRequestWithObject:reqDocObj
method:RKRequestMethodPOST
path:@"syncDocument.json"
parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:UIImagePNGRepresentation([UIImage imageNamed:@"graybox.png"])
name:@"image"
fileName:@"some_file"
mimeType:@"image/jpeg"];
}];
RKObjectRequestOperation *operation =
[objectManager
objectRequestOperationWithRequest:request
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"WS: errore operazione di richiesta %@",error);
}
];
[objectManager enqueueObjectRequestOperation:operation];
objectManager 配置为:
[objectManager setAcceptHeaderWithMIMEType:RKMIMETypeJSON];
[objectManager setRequestSerializationMIMEType:RKMIMETypeJSON];
objectManager.requestSerializationMIMEType = RKMIMETypeJSON;
[编辑]
我的 mapepd 对象是SynchDocObj:
requestDocMapping = [RKObjectMapping mappingForClass:[SynchDocObj class]];
[requestDocMapping addAttributeMappingsFromDictionary:mappingDocDict];
问题是:
1)在RKlogs中,request.body = null和JSON对象被放入form-data中
2) 服务器无法解码正文,因为它是null
我的问题是:
1) 我是否以错误的方式发送 JSON 对象?
2) 如果是,我如何发送带有文件上传的 JSON 对象,即作为多部分请求? 问候!
[解决方案]
按照答案的建议,我认为解决方案是 1)从表单数据而不是正文中检索映射对象; 2) 或发布一个 nil 对象并将 JSON 字符串放入表单数据中。
【问题讨论】:
-
我不确定您是否可以发送 JSON 和文件。该文件由表单 URL 编码格式支持,而不是 JSON。
-
所以你是说,在 RestKit 中,不可能做这样的事情stackoverflow.com/questions/9081079/…
-
这与您的问题所暗示的不同。那是您想要的吗(在一部分中使用 JSON 形成编码请求)。是可以做到的,只需要几步……
-
是的,我会这样做...
标签: ios restkit restkit-0.20