IOS RESTKIT HTTP PUT示例

我想更新运行在REST API中的服务器中的数据。 我从iOS设备使用RESTKIT。 但是我找不到如何在restkit中使用PUT。

我必须发送数据,如:“user_id”值:“2”这些格式。 任何人都可以请帮我解决这个问题.. 🙁

SOKeyValue.h:用作呼叫参数的序列化对象。

#import <Foundation/Foundation.h> @interface SOKeyValue : NSObject @property (nonatomic, retain) NSString* key; @property (nonatomic, retain) NSString* value; @end 

这里有一个简化的代码来初始化Restkit:

 /* This part of code must be executed only one time in your application */ //To see logs RKLogConfigureByName("RestKit/Network", RKLogLevelTrace); //Init with good domain RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:@"http://mydomain.dev/ui/v1"]; //Indicate to use JSON [RKObjectManager sharedManager].serializationMIMEType = RKMIMETypeJSON; //Route path when you call a PUT with SOKeyValue class [manager.router routeClass:[SOKeyValue class] toResourcePath:@"/yourpath" forMethod:RKRequestMethodPUT]; //Serialization for SOKeyValue class RKObjectMapping* keyvalueSerializationMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class] ]; [authSerializationMapping mapAttributes:@"key", @"value", nil]; [[RKObjectManager sharedManager].mappingProvider setSerializationMapping:keyvalueSerializationMapping forClass:[SOKeyValue class] ]; 

现在我们可以实现一个使用PUT的服务。 在将执行调用的对象不要忘记restkit委托RKObjectLoaderDelegate

 #import <Foundation/Foundation.h> #import <RestKit/RestKit.h> #import "SOKeyValue.h" @interface MyViewOrMyServiceObject: NSObject <RKObjectLoaderDelegate> - (void)putKeyValue; - (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects; - (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error; @end 

在你的(.m)中:

 - (void)putKeyValue { SOKeyValue *keyvalue = [[SOKeyValue alloc] init]; keyvalue.key = @"k"; keyvalue.value = @"2"; [[RKObjectManager sharedManager] putObject:keyvalue delegate:self]; [keyvalue release]; } 

您可以在跟踪中看到状态码,并使用callback函数:

 - (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects; - (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error; 

所以我没有MAC在家里,这是很难为您的代码结构的帮助。 如果你有问题,请不要犹豫。

Interesting Posts