2012-02-23 7 views
0

私は客観的で安心しています。私のコードはエラーなしで実行されますが、サーバは投稿要求が表示されません。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]]); 
} 

===============================を使用しているコードです=================================

編集:

Objects(オブジェクト)

@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メソッドを呼んでいるが、こんにちは

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

    [super viewDidLoad]; 
} 
+0

そして、長い型の代わりにNSStringを使用できますか?私はあなたがマップすることができますか分からない!また、長い値を文字列で指定したい場合は、例:[countResultVO.offercount longLongValue]を指定します。彼が長い型を扱えないなら、それは直列化オブジェクトを認識しません。 RestKitトレース/ログはありますか?あなたはあなたの構築メソッドが呼び出されていますか? – Beber

+0

ログはあまりありません。ちょうど [806:fb03] I rest rest:RKLog.m:30 RestKit initialized ... 私はコンストラクトを呼び出してから実行します。 – ir2pid

+0

あなたのURLがブロックされていますが、それは問題ありませんが、本当に80番ポートに行くのですか?代わりに8080を意味しましたか? –

答えて

1

をのviewDidLoad私はいくつかの要素を変更するが、この1つはあなたの問題を解決しない場合、私はより多くのコードとトレースを必要とします。あなたのVOコードを見ることは可能ですか?

本当にBasicUserArgVoオブジェクトに「userId」属性と「mode」属性がありますか?そうでなければ、これはあなたの問題になる可能性があります。

-(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

+0

と - (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError :(NSError *)エラー。メソッドが呼び出されますか? – Beber

+0

いや、 はここに私のrestKitUtilクラス 'code' @interface RestKitUtilです:NSObjectの { @public NSStringの* URL。 @パブリックNSString *メソッド; } - (void)construct; - (void)run; 'code' – ir2pid

関連する問題