测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可协议 | MIT |
发布上次发布 | 2016年11月 |
由 Stefano Zanetti 维护。
依赖 | |
AFNetworking | ~> 3.0 |
Mantle | ~> 2.0.6 |
SAMKeychain | ~> 1.5.1 |
Mercurio是一个使用AFNetworking创建API并用Mantle解析响应的快速方法。
要运行示例项目,请克隆仓库,然后首先从示例目录运行pod install
。
Mercurio通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod 'Mercurio', '~> 0.1.3'
@interface MEResponse : MEModel
@property (copy, nonatomic) NSString *accept;
@property (copy, nonatomic) NSString *acceptEncoding;
@property (copy, nonatomic) NSString *acceptLanguage;
@property (copy, nonatomic) NSString *host;
@property (copy, nonatomic) NSString *userAgent;
@end
@implementation MEResponse
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{ selStr(accept) : @"Accept",
selStr(acceptEncoding) : @"Accept-Encoding",
selStr(acceptLanguage) : @"Accept-Language",
selStr(host) : @"Host",
selStr(userAgent) : @"User-Agent" };
}
@end
您必须创建一个MEApi实例,设置路径、响应类以及json响应对象的根。就是这样!
MEApi *api = [MEApi apiWithMethod:MEApiMethodGET
path:@"https://httpbin.org/get"
responseClass:[MEResponse class]
jsonRoot:@"headers"];
现在您只需告诉MESessionManager您想要执行哪个API即可。
[[MESessionManager sharedInstance] sessionDataTaskWithApi:api
completion:^(id responseObject, NSURLSessionDataTask *task, NSError *error) {
if (!error) {
NSLog(@"%@", responseObject);
}
}];
像上一个示例一样,您必须创建一个MEMultipartFormApi实例。MEMultipartFormApi是一个遵循MEMultipartFormApiProtocol协议的MEApi。
MEMultipartFormApi *api = [MEMultipartFormApi apiWithMethod:MEApiMethodPOST
path:@"http://posttestserver.com/post.php?dir=mercurio"
responseClass:[NSNull class]
jsonRoot:nil];
[api setMultipartFormConstructingBodyBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:[NSData data]
name:@""name"
fileName:@"file.jpg"
mimeType:@"image/jpeg"];
}];
然后MESessionManager完成剩余的操作。
[[MESessionManager sharedInstance] sessionMultipartDataTaskWithApi:api
completion:^(id responseObject, NSURLSessionDataTask *task, NSError *error) {
if (!error) {
NSLog(@"%@", responseObject);
}
}];
MESessionManager始终返回NSURLSessionDataTask,因此您可以在任何时间取消操作。
Stefano Zanetti,[email protected]
Mercurio以MIT许可协议提供。有关更多信息,请参阅LICENSE文件。