2012-02-23 40 views
0

我新的目標和休息kit.My代碼運行沒有錯誤,但服務器不顯示任何POST請求被made.the URL和方法名稱是否正確,有沒有別的東西,我」失蹤了?RestKit不張貼到服務器

下面

是我使用

-(void)construct 
    { 
    RKLogConfigureByName("RestKit/Network", RKLogLevelTrace); 
    URL = @"http://xx.xx.xx.xx:80/CW_war/getMyOffersCount"; 
    } 


- (void)run{ 

    //mapping request object 
    RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[CountResultVO class]]; 
    [mapping mapKeyPath:@"offercount" toAttribute:@"offercount"]; 
    [mapping mapKeyPath:@"insertCount" toAttribute:@"insertCount"]; 
    [mapping mapKeyPath:@"favouriteOfferCount" toAttribute:@"favouriteOfferCount"]; 
    [mapping mapKeyPath:@"favouriteInsertCount" toAttribute:@"favouriteInsertCount"]; 

    //set mapping 
    [[RKObjectManager sharedManager].mappingProvider addObjectMapping:mapping];forKeyPath:@"articles"]; 


    //serializing post object 
    RKObjectMapping* outSerializationMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]]; 
    [outSerializationMapping mapAttributes:@"userId", @"userId", @"mode", @"mode", nil]; 
    [[RKObjectManager sharedManager].mappingProvider setSerializationMapping:outSerializationMapping forClass:[BasicUserArgVo class]]; 

    //setting post params 
    RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:URL]; 
    manager.acceptMIMEType = RKMIMETypeJSON; 
    manager.serializationMIMEType = RKMIMETypeJSON; 

    //setting post object router 
    [manager.router routeClass:[BasicUserArgVo class] 
       toResourcePath:@"/getMyOffersCount" 
        forMethod:RKRequestMethodPOST]; 
    //init post object 
    BasicUserArgVo *bvo = [[BasicUserArgVo alloc]initWithUserId:5 andMode:nil]; 

    //post object BasicUserArgVo and map to CountResultVO 
    [manager postObject:bvo mapResponseWith:mapping delegate:self]; 

} 

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObject:(NSArray*)objects { 
    NSLog(@"hello"); 
    CountResultVO* countResultVO = [objects objectAtIndex:0]; 
    NSLog(@"RESULT : %ld %ld",[countResultVO offercount],[countResultVO insertCount]); 

} 

- (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error { 
    NSLog([NSString stringWithFormat:@"Error: %@", [error localizedDescription]]); 
} 

代碼=============================== =================================

編輯:

的對象 -

@interface CountResultVO : NSObject 
{ 
    long offercount; 
    long insertCount; 
    long favouriteOfferCount; 
    long favouriteInsertCount; 
} 
@property(nonatomic,readwrite) long offercount; 
@property(nonatomic,readwrite) long insertCount; 
@property(nonatomic,readwrite) long favouriteOfferCount; 
@property(nonatomic,readwrite) long favouriteInsertCount; 

@end 

@interface BasicUserArgVo : NSObject 
{ 
    long userId; 
    NSString *mode; 
} 

@property(nonatomic,readwrite) long userId; 
@property(nonatomic,retain) NSString * mode; 
-(id)initWithUserId:(long)uid andMode:(NSString *)m; 
-(id)initWithUserId:(long)uid; 
@end 

和我打電話給我的應用程序的(無效)run方法viewDidLoad中

- (void)viewDidLoad 
{ 
    RestKitUtil *restKitUtil = [[RestKitUtil alloc]init]; 
    [restKitUtil run]; 

    [super viewDidLoad]; 
} 
+0

而且,你可以使用NSString而不是長型 - 我不知道你能否映射很久!?之後如果你想要一個字符串的長整型值:例如[countResultVO.offercount longLongValue]。如果他不能處理長類型,它將無法識別序列化對象。你有RestKit痕跡/日誌嗎?你是否認爲你的構造方法被稱爲? – Beber 2012-02-24 09:49:18

+0

沒有太多的日誌,只是 [806:fb03]我restkit:RKLog.m:30 RestKit初始化... 我調用構造,然後運行。 – ir2pid 2012-02-24 10:37:18

+0

我看到你阻止了你的URL,沒關係,但你真的要去80端口嗎?你的意思是8080嗎? – 2012-02-24 11:17:30

回答

1

你好,我改變一些元素,但如果這個人不解決您的問題,我需要更多的代碼和痕跡。有可能看到你的VO代碼?

你真的有「用戶id」和「模式」 BasicUserArgVo對象屬性?如果不是這可能是你的問題。

-(void)construct 
{ 
    RKLogConfigureByName("RestKit/Network", RKLogLevelTrace); 
    URL = @"http://xx.xx.xx.xx:80/CW_war/getMyOffersCount"; 

    //setting post params 
    RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:URL]; 
    [RKObjectManager sharedManager].acceptMIMEType = RKMIMETypeJSON; 
    [RKObjectManager sharedManager].serializationMIMEType = RKMIMETypeJSON; 

    //mapping request object 
    RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[CountResultVO class]]; 
    [mapping mapKeyPath:@"offercount" toAttribute:@"offercount"]; 
    [mapping mapKeyPath:@"insertCount" toAttribute:@"insertCount"]; 
    [mapping mapKeyPath:@"favouriteOfferCount" toAttribute:@"favouriteOfferCount"]; 
    [mapping mapKeyPath:@"favouriteInsertCount" toAttribute:@"favouriteInsertCount"]; 

    //set mapping [I change called method, there seems to be a misuse at this level] 
    [[RKObjectManager sharedManager].mappingProvider setMapping:mapping forKeyPath:@"articles"]; 


    //serializing post object 
    RKObjectMapping* outSerializationMapping = [RKObjectMapping mappingForClass:  [NSMutableDictionary class] ]; 
    // [If class attributes names are same as JSON's, don't repeat] 
    [outSerializationMapping mapAttributes:@"userId", @"mode", nil]; 
    [[RKObjectManager sharedManager].mappingProvider setSerializationMapping:authSerializationMapping forClass:[BasicUserArgVo class] ]; 


    //setting post object router 
    [[RKObjectManager sharedManager].router routeClass:[BasicUserArgVo class] 
      toResourcePath:@"/getMyOffersCount" 
       forMethod:RKRequestMethodPOST]; 


} 


- (void)run{ 

    //init post object 
    BasicUserArgVo *bvo = [[BasicUserArgVo alloc]initWithUserId:5 andMode:nil]; 

    //post object BasicUserArgVo and map to CountResultVO 
    RKObjectMapping* myMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[CountResultVO class] ]; 
    [[RKObjectManager sharedManager] postObject:bvo mapResponseWith:myMapping delegate:self]; 

} 

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObject:(NSArray*)objects { 
NSLog(@"hello"); 
CountResultVO* countResultVO = [objects objectAtIndex:0]; 
NSLog(@"RESULT : %ld %ld",[countResultVO offercount],[countResultVO insertCount]); 

} 

- (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error { 
NSLog([NSString stringWithFormat:@"Error: %@", [error localizedDescription]]); 
} 
+0

服務器中仍然沒有活動,是否有一些我需要添加的權限來進行網絡調用? – ir2pid 2012-02-24 05:27:25

+0

和 - (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error;方法被調用? – Beber 2012-02-24 09:53:44

+0

不, 這裏是我的restKitUtil類 'code' @interface RestKitUtil:NSObject的 { @public的NSString * URL; @public NSString * METHOD; } - (void)構造; - (void)run; 'code' – ir2pid 2012-02-24 10:14:41