AFNetworking是一款强大的网络请求库,使请求数据更加方便。这里就AFNetworking判断网络、post的请求、上传图片介绍一下。大家可以直接拿去用,不需要修改什么
判断网络
// 开始请求网络
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager ] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case -1:
NSLog(@"未知网络");
break;
case 0:
NSLog(@"网络不可达");
break;
case 1:
NSLog(@"GPRS网络");
break;
case 2:
NSLog(@"wifi网络");
break;
default:
break;
}
// 判断网络情况
if(status ==AFNetworkReachabilityStatusReachableViaWWAN || status == AFNetworkReachabilityStatusReachableViaWiFi)
{
NSLog(@"有网");
block(YES);
}else
{
NSLog(@"没有网");
block(NO);
}
}];
post请求
AFHTTPSessionManager * session = [AFHTTPSessionManager manager];
session.responseSerializer = [AFHTTPResponseSerializer serializer];
session.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"application/x-json",@"text/html", nil];
// 参数1: url
// 参数2: body体
[session POST:urlString parameters:params progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@"上传的进度");
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@",dic);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"post请求失败:%@", error);
}];
上传图片
//上传图片二进制流
+(void)postImageURL:(NSString *)urlstring
headerParams:(NSDictionary *)headerParmas
params:(NSDictionary *)parmas
file:(NSMutableArray *)filesArray
file:(NSMutableArray *)filename
success:(void (^)(id data))success
fail:(void(^)(NSError *error))fail
{
// headerParmas请求头为nil就行 parmas请求体 filesArray 图片二进制流数组 filename 图片名数组
AFHTTPRequestOperationManager *mgr=[AFHTTPRequestOperationManager manager];
NSString *requestURL = [NSString stringWithFormat:@"%@", urlstring];
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
[mgr POST:requestURL parameters:parmas constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
for (int index = 0; index < filesArray.count; index++) {
NSData *data = filesArray[index];
[formData appendPartWithFileData:data name:@"file" fileName:[NSString stringWithFormat:@"%@.jpg",filename[index]] mimeType:@"multipart/form-data"];//image/jpg multipart/form-data
}
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (error) {
fail(error);
}
}];
}
网友评论