簡體   English   中英

IOS RESTKIT HTTP PUT 示例

[英]IOS RESTKIT HTTP PUT example

我想更新在 REST API 中運行的服務器中的數據。我正在使用來自 ios 設備的 RESTKIT。 但我找不到如何在 restkit 中使用 PUT。

我必須發送像 key:"user_id" value:"2" 這些格式的數據。 誰能幫我解決這個問題.. :(

SOKeyValue.h:序列化的 object 用作您調用的參數。

#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 的服務。 在將實現調用的 object 中,不要忘記 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,很難幫助你了解代碼結構。 如果您有任何疑問,請不要猶豫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM