处理与RestKit 0.20 GET/POST请求/响应,你可以按照以下顺序: -
在第一个与基地服务器URL配置RKObjectManager: -
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:baseUrl];
[manager.HTTPClient setDefaultHeader:@"Accept" value:RKMIMETypeJSON];
manager.requestSerializationMIMEType = @"application/json";
由于RestKit总是处理用于请求和响应的对象,您必须创建一个包含您期望作为响应的所有参数的对象。
@interface AuthenticationRequest : NSObject
@property (nonatomic, copy) NSNumber *userName;
@property (nonatomic, copy) NSString *password;
@end
@interface AuthenticationResponse : NSObject
@property (nonatomic, copy) NSNumber *token;
@property (nonatomic, copy) NSString *expiryDate;
@property (nonatomic, copy) NSString *userId;
@end
然后使用服务器JSON响应中的键为本地对象中的实例变量配置请求和响应映射。
注意:仅在POST或PUT请求的情况下配置请求映射。
RKObjectMapping *requestMapping = [RKObjectMapping mappingForClass:[AuthenticationRequest class]];
[requestMapping addAttributeMappingsFromDictionary:@{
@"userName": @"userName",
@"password" : @"password",
}];
RKObjectMapping *responseMapping = [RKObjectMapping mappingForClass:[AuthenticationResponse class]];
[responseMapping addAttributeMappingsFromDictionary:@{
@"TOKEN": @"token",
@"expiryDate" : @"expiryDate",
@"USERID": @"userId"
}];
然后创建一个响应描述,将基于您通过它的pathPattern值本地对象执行服务器JSON对象的映射。以下列方式
[manager getObjectsAtPath:(NSString *)<rest of the path excluding the baseURL> parameters:(NSDictionary *)parameters
success:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure];
或执行服务器上的POST请求: - - :
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[AuthenticationResponse class] rootKeyPath:nil]
[manager addRequestDescriptor:requestDescriptor];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping pathPattern:<rest of the path excluding the baseURL> keyPath:nil statusCodes:nil];
[manager addResponseDescriptor:responseDescriptor];
现在在服务器上以如下方式进行GET请求
[manager postObject:AuthenticationRequest
path:<rest of the path excluding the baseURL>
success:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure];
成功与失败块将保持你的回应处理。
如需更多帮助,您可以参考以下链接从RestKit: -
https://github.com/RestKit/RKGist/blob/master/TUTORIAL.md
检查此链接希望它会帮助你http://stackoverflow.com/questions/1973325/nsurlconnection-and-basic-http-身份验证 – Exploring 2013-03-22 11:14:17
@sanjitshaw我需要POST基于... – 2013-03-22 11:23:05
当你说AFNetworking没有成功,你是如何使用它,你遇到什么问题?您的朋友输入了哪种类型的身份验证? – 2013-03-22 11:54:11