我想更新在REST API中運行的服務器中的數據。我使用ios設備的RESTKIT。但我找不到如何在restkit中使用PUT。IOS RESTKIT HTTP PUT示例
我必須發送如key:「user_id」的數據值:「2」這些格式。任何人都可以請幫我解決這個問題.. :(
我想更新在REST API中運行的服務器中的數據。我使用ios設備的RESTKIT。但我找不到如何在restkit中使用PUT。IOS RESTKIT HTTP PUT示例
我必須發送如key:「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];
}
你可以看到你的跟蹤狀態代碼,並使用回調函數:
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects;
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error;
所以我沒有MAC在家裏,這是艱難的齧合以幫助您瞭解代碼結構。如果你有問題,請不要猶豫。
謝謝..只是讓它可行。 – Samin 2012-04-11 19:52:27
你已經做了一個開始代碼?例如配置restkit。你有沒有使用get或post? – Beber 2012-04-09 19:31:51
我配置了RESTkit。但直到現在我還沒有使用它。我使用ASIFormDataRequest進行POST和GET,但是當我嘗試使用PUT時,似乎出現了一些問題。所以我決定切換RESTKIT。但是我得到的教程找不到適合PUT的例子(我想使用的方式)。所以,如果有人知道如何做到這一點,這將是對我非常有幫助..感謝 – Samin 2012-04-09 19:38:25
我知道如果你只使用RKObjectManager,你可以做一個「放」。如果你想要一個RKObjectManager的例子,我可以幫你。 – Beber 2012-04-09 19:47:41