iOS 发送请求上传数据中带有图片

发送请求上传数据中带有图片时,使用这个方法- (NSURLSessionDataTask *)POST:(NSString *)URLString
parameters:(id)parameters
constructingBodyWithBlock:(void (^)(id <AFMultipartFormData> formData))block
progress:(nullable void (^)(NSProgress * _Nonnull))uploadProgress
success:(void (^)(NSURLSessionDataTask *task, id responseObject))success
failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure
,示例代码如下:

    NSDictionary *params = @{
                          @"cardnum":certificate.cardNumber,
                          @"name":certificate.partyName,
                           };

    NSData *data = UIImagePNGRepresentation(certificate.avatarImage);

    dispatch_async(dispatch_get_global_queue(0, 0), ^{

        AFHTTPSessionManager *manager = [[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:kUrl(@"addCardinfo")]];
        //证书
        //  设置证书模式
        NSString * cerPath = [[NSBundle mainBundle] pathForResource:@"scadahzsoc" ofType:@"cer"];
        NSData * cerData = [NSData dataWithContentsOfFile:cerPath];
        manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:[[NSSet alloc] initWithObjects:cerData, nil]];
        //     客户端是否信任非法证书
        manager.securityPolicy.allowInvalidCertificates = YES;
        // 是否在证书域字段中验证域名
        [manager.securityPolicy setValidatesDomainName:NO];

        [manager POST:kUrl(@"addCardinfo") parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

            [formData appendPartWithFileData:data
                                        name:@"img"
                                    fileName:@"pic.jpeg"
                                    mimeType:@"image/jpeg"];

        } progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
            NSLog(@"Response: %@", responseObject);
            dispatch_async(dispatch_get_main_queue(), ^{

            });//主线程

        } failure:^(NSURLSessionDataTask *task, NSError *error) {
            NSLog(@"Error: %@", error);
        }];
    });

注意:
以上代码中的证书相关的设置试用于配置https 的请求,在配置证书的情况下manager在初始化的情况下必须给它一个baseUrl,否则会崩溃,相关内容可以浏览
iOS 配置https后程序崩溃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值