美文网首页
AFNetworking判断网络、post的请求、上传图片

AFNetworking判断网络、post的请求、上传图片

作者: 鄂北 | 来源:发表于2017-09-11 11:09 被阅读15次

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);
        }
    }];
    
}

相关文章

网友评论

      本文标题:AFNetworking判断网络、post的请求、上传图片

      本文链接:https://www.haomeiwen.com/subject/pzvxsxtx.html