Ios RestKit 0.20-使用patchObject并传递图像附件
根据我发现的示例(很少),我使用以下方法执行patchObject调用: 。。。但我还需要传递一个图像。添加图像参数的常用方法是将其添加到请求中,然后将其分配给要使用的操作,即:Ios RestKit 0.20-使用patchObject并传递图像附件,ios,objective-c,restkit-0.20,Ios,Objective C,Restkit 0.20,根据我发现的示例(很少),我使用以下方法执行patchObject调用: 。。。但我还需要传递一个图像。添加图像参数的常用方法是将其添加到请求中,然后将其分配给要使用的操作,即: request = [[RKObjectManager sharedManager] multipartFormRequestWithObject:user method:RKR
request = [[RKObjectManager sharedManager] multipartFormRequestWithObject:user
method:RKRequestMethodPOST
path:@"profile"
parameters:nil
constructingBodyWithBlock:^(id<AFRKMultipartFormData> formData) {
[formData appendPartWithFileData:UIImagePNGRepresentation(self.photoImageView.image)
name:@"user[avatar]"
fileName:@"photo.png"
mimeType:@"image/png"];
}];
RKManagedObjectRequestOperation *operation = [[RKManagedObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[responseDescriptor, errorDescriptor]];
operation.managedObjectContext = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext;
operation.managedObjectCache = [RKManagedObjectStore defaultStore].managedObjectCache;
// etc...
request=[[RKObjectManager sharedManager]multipartFormRequestWithObject:用户
方法:RKRequestMethodPOST
路径:@“配置文件”
参数:零
构造体WithBlock:^(id formData){
[formData appendPartWithFileData:UIImagePNGRepresentation(self.photoImageView.image)
名称:@“用户[化身]”
文件名:@“photo.png”
mimeType:@“image/png”];
}];
RKManagedObjectRequestOperation*操作=[[RKManagedObjectRequestOperation alloc]initWithRequest:request-responseDescriptors:@[responseDescriptor,errorDescriptor]];
operation.managedObjectContext=[RKSManagedObjectStore defaultStore].mainQueueManagedObjectContext;
operation.managedObjectCache=[RKSManagedObjectStore defaultStore].managedObjectCache;
//等等。。。
由于patchObject方法无法定义正在使用的操作(或请求),因此我看不出如何将图像数据添加到API调用中
以前允许在执行patchObject时在块内定义图像的可用方法似乎不再存在于RestKit中
有什么想法吗?如果您能给我一些建议,我将不胜感激
提前感谢。+(void)PostMutlipPartData:(NSString*)urlStr:(NSDictionary*)参数:(NSData*)数据:(void(^)(NSDictionary*响应\成功))成功:(void(^)(NSError*响应\错误))失败{
+(void)postMutliPartData : (NSString *)urlStr : (NSDictionary *)parameters : (NSData *)data : (void(^)(NSDictionary * response_success))success : (void(^)(NSError * response_error))failure {
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", nil];
[manager POST:urlStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
[formData appendPartWithFileData: data name:@"image" fileName:@"temp.jpeg" mimeType:@"image/jpeg"];
} progress:nil success:^(NSURLSessionTask *task, id responseObject) {
NSLog(@"%@",responseObject);
success(responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
failure(error);
}];
}
AFHTTPSessionManager*manager=[AFHTTPSessionManager-manager];
manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@“application/json”,nil];
[管理员职位:urlStr参数:参数constructingBodyWithBlock:^(id formData)
{
[formData appendPartWithFileData:数据名称:@“image”文件名:@“temp.jpeg”mimeType:@“image/jpeg”];
}进度:无成功:^(NSURLSessionTask*任务,id响应对象){
NSLog(@“%@”,响应对象);
成功(响应对象);
}失败:^(NSURLSessionTask*操作,NSError*错误){
失败(错误);
}];
}
@RobertTurrall:看着rajat给出的其他答案,似乎他只是对任何问题随机给出答案。@vikingosegundo显然是这样,是的。这当然不会让我更接近解决方案!
+(void)postMutliPartData : (NSString *)urlStr : (NSDictionary *)parameters : (NSData *)data : (void(^)(NSDictionary * response_success))success : (void(^)(NSError * response_error))failure {
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", nil];
[manager POST:urlStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
[formData appendPartWithFileData: data name:@"image" fileName:@"temp.jpeg" mimeType:@"image/jpeg"];
} progress:nil success:^(NSURLSessionTask *task, id responseObject) {
NSLog(@"%@",responseObject);
success(responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
failure(error);
}];
}