私は客観的で安心しています。私のコードはエラーなしで実行されますが、サーバは投稿要求が表示されません。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];
}
そして、長い型の代わりにNSStringを使用できますか?私はあなたがマップすることができますか分からない!また、長い値を文字列で指定したい場合は、例:[countResultVO.offercount longLongValue]を指定します。彼が長い型を扱えないなら、それは直列化オブジェクトを認識しません。 RestKitトレース/ログはありますか?あなたはあなたの構築メソッドが呼び出されていますか? – Beber
ログはあまりありません。ちょうど [806:fb03] I rest rest:RKLog.m:30 RestKit initialized ... 私はコンストラクトを呼び出してから実行します。 – ir2pid
あなたのURLがブロックされていますが、それは問題ありませんが、本当に80番ポートに行くのですか?代わりに8080を意味しましたか? –