#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
typedef void(^CallBack)(id data);
typedef void(^RequestFail)(id obj);
@interface Request : NSObject
+(void)requestUrl:(NSString *)url parameters:(NSDictionary *)params success:(CallBack)callBack failure:(RequestFail)requestFail;
+(void)GETRequestURL:(NSString *)url parameters:(NSDictionary *)params success:(CallBack)callBack failure:(RequestFail)requestFail;
+(void)requestUrl:(NSString *)url parameters:(NSDictionary *)params images:(NSArray *)images imageNames:(NSArray *)names success:(CallBack)callBack failure:(RequestFail)requestFail;
+(void)requestUrl:(NSString *)url parameters:(NSDictionary *)params image:(UIImage *)image imageName:(NSString *)name success:(CallBack)callBack failure:(RequestFail)requestFail;
@end
#import "YYRequest.h"
#import "AFNetworking.h"
@implementation Request
+(void)requestUrl:(NSString *)url parameters:(NSDictionary *)params success:(CallBack)callBack failure:(RequestFail)requestFail
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];
[manager POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
callBack(dic);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
requestFail(@"请求错误");
}];
}
+(void)GETRequestURL:(NSString *)url parameters:(NSDictionary *)params success:(CallBack)callBack failure:(RequestFail)requestFail
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];
[manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject){
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
callBack(dic);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
requestFail(@"请求错误");
}];
}
#pragma mark 上传图片
+(void)requestUrl:(NSString *)url parameters:(NSDictionary *)params images:(NSArray *)images imageNames:(NSArray *)names success:(CallBack)callBack failure:(RequestFail)requestFail
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];
[manager POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
NSData *data;
NSString *name;
NSString *type;
for (int i = 0; i < images.count; i++) {
if (UIImagePNGRepresentation(images[i])) {
data = UIImagePNGRepresentation(images[i]);
name = [NSString stringWithFormat:@"%@.png", names[i]];
type = @"image/png";
[formData appendPartWithFileData:data name:names[i] fileName:name mimeType:type];
}else {
data = UIImageJPEGRepresentation(images[i], 1.0);
name = [NSString stringWithFormat:@"%@.jpg", names[i]];
type = @"image/jpeg";
[formData appendPartWithFileData:data name:names[i] fileName:name mimeType:type];
}
}
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
if ([@"1" isEqualToString:dic[@"state"]]) {
callBack(dic);
}
else
requestFail([self failReasonWithCode:[dic[@"reason"] integerValue]]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
requestFail(@"请求错误");
}];
}
+(void)requestUrl:(NSString *)url parameters:(NSDictionary *)params image:(UIImage *)image imageName:(NSString *)name success:(CallBack)callBack failure:(RequestFail)requestFail
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];
[manager POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
if (image) {
NSData *data;
if (UIImagePNGRepresentation(image)) {
data = UIImagePNGRepresentation(image);
[formData appendPartWithFileData: data name:@"file" fileName:[NSString stringWithFormat:@"%@.png", name] mimeType:@"image/png"];
}
else
{
data = UIImageJPEGRepresentation(image, 1.0);
[formData appendPartWithFileData: data name:@"file" fileName:[NSString stringWithFormat:@"%@.jpg", name] mimeType:@"image/jpeg"];
}
}
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
if ([@"1" isEqualToString:dic[@"state"]]) {
callBack(dic);
}
else
requestFail([self failReasonWithCode:[dic[@"reason"] integerValue]]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
requestFail(@"请求错误");
}];
}
#pragma mark 请求失败原因
+(NSString *)failReasonWithCode:(NSInteger)code
{
if (code == 1005) {
return @"密码错误!";
}
else if (code == 1009)
{
return @"手机号已经被注册!";
}
else if (code == 1001)
{
return @"参数错误";
}
else if (code == 1002)
{
return @"类别错误";
}
else if (code == 1003)
{
return @"session失效果,用户重新登陆";
}
else if (code == 1004)
{
return @"用户不存在或被禁用";
}
else if (code == 1006)
{
return @"未知错误";
}
else if (code == 1007)
{
return @"没有登陆";
}
else if (code == 1008)
{
return @"没有数据";
}
else if (code == 1010)
{
return @"数据库操作失败";
}
else if (code == 1011)
{
return @"重复操作";
}
else if (code == 1012)
{
return @"已经被收藏";
}
else if (code == 1013)
{
return @"用户信息不存";
}
else if (code == 1014)
{
return @"密码为空或者少于6位";
}
else if (code == 1015)
{
return @"手机号码没有被注册";
}
else if (code == 1016)
{
return @"文件格式不对或者文件大小超过2兆";
}
else if (code == 1017)
{
return @"用户名已经被注册了";
}
else if (code == 1018)
{
return @"电话号码格式不正确";
}
else if (code == 1019)
{
return @"没有购买";
}
else if (code == 1020)
{
return @"新密码与旧密码一致";
}
else if (code == 1021)
{
return @"身份证照片必须上传";
}
else if (code == 1022)
{
return @"头像更新失败";
}
else if (code == 1023)
{
return @"已经关注";
}else if (code == 1024)
{
return @"手机验证码发送失败";
}else if (code == 1025)
{
return @"token储存失败";
}else if (code == 1026)
{
return @"手机验证码超过当天发送的上限";
}else if (code == 1027)
{
return @"取消关注失败";
}
else
return [NSString stringWithFormat:@"%lu", code];
return nil;
}
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[Request requestUrl:@"http://.net/"
parameters:@{@"Name":@"llili",@"BirthYear":@"12"}
success:^(id data) { NSLog(@"%@", data); }
failure:^(id obj) { NSLog(@"%@", obj); }
];
}
@end