美文网首页
iOS 表单格式请求 formdata

iOS 表单格式请求 formdata

作者: Tomboy_Anan | 来源:发表于2019-10-28 17:50 被阅读0次

    -(void)updateImageHeadWithUserID:(NSString *)userID imageUrl:(UIImage *)imageUrl complete:(void (^)(id))completeBlock{

    NSString *url = [NSString stringWithFormat:@"%@%@v1/system/updateImageHead",AFURL,userGateway];
    
    self.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",
                                                      @"text/html",
                                                      @"image/jpeg",
                                                      @"image/png",
                                                      @"application/octet-stream",
                                                      @"text/json",
                                                      @"text/javascript,multipart/form-data",
                                                      nil];
    
    NSMutableDictionary *body = [[NSMutableDictionary alloc]init];
    body[@"userId"] = userID;
    
    [self POST:url parameters:body constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
       
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat            = @"yyyyMMddHHmmss";
        NSString *str                   = [formatter stringFromDate:[NSDate date]];
        NSString *fileName              = [NSString stringWithFormat:@"%@.png", str];
        
        NSData *data = [self zipNSDataWithImage:imageUrl];
        
        [formData appendPartWithFileData:data name:@"imageUrl" fileName:fileName mimeType:@"image/jpeg"];
        
    } progress:^(NSProgress * _Nonnull uploadProgress) {
    
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        if (responseObject != nil) {
            NSString *success = responseObject[@"success"];
            if (success.intValue == 1) {
                // 保存沙盒
                NSString *path_document = NSHomeDirectory();
                NSString *imagePath = [path_document stringByAppendingString:@"/Documents/userHeadImage.png"];
                [UIImagePNGRepresentation(imageUrl) writeToFile:imagePath atomically:YES];
                
                if (completeBlock) {
                    completeBlock(responseObject);
                }
            }else{
                NSString *msg = responseObject[@"msg"];
                [OJBProgressHUD OJBShowSvpErrorTitle:msg andTime:kNormalDelayTime andColor:YES];
            }
    
        }
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSData *data = error.userInfo[@"com.alamofire.serialization.response.error.data"];
        if(data != nil){
            NSDictionary *errorDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
            // 处理异常
            NSString *message = errorDict[@"message"];
            NSArray *array = [message componentsSeparatedByString:@"Failed:"];
            [OJBProgressHUD OJBShowSvpErrorTitle:array[1] andTime:kNormalDelayTime andColor:YES];
        }else{
            [OJBProgressHUD OJBShowSvpErrorTitle:@"服务繁忙" andTime:kNormalDelayTime andColor:YES];
        }
    }];
    

    }

    相关文章

      网友评论

          本文标题:iOS 表单格式请求 formdata

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