AFNetworking 部分记录

135 阅读1分钟

1.设置请求后还有Header AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; [manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html",nil]]; if(type == 文件上传){ manager.requestSerializer= [AFJSONRequestSerializer serializer]; [manager.requestSerializer  setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"]; } else { manager.requestSerializer= [AFJSONRequestSerializer serializer]; [manager.requestSerializer  setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];     } //设置Header [manager.requestSerializer  setValue:xxx forHTTPHeaderField:@"Authorization"];     [manager.requestSerializer  setValue:@"com.abc.xxx" forHTTPHeaderField:@"packageName"];     [manager.requestSerializer  setValue:xxx forHTTPHeaderField:@"afid"];     [manager.requestSerializer  setValue:xxx forHTTPHeaderField:@"appName"];     [manager.requestSerializer  setValue:@"es" forHTTPHeaderField:@"lang"]; #warning 超时设置放在最后,否则抓包等其他情况,导致手动设置的超时无效,变为默认的一分钟     manager.requestSerializer.timeoutInterval = 30; // 设置超时时间为 30 秒

2.上传文件核心方法 [manager POST:url parameters:@{@"params":xxx} headers:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) { //将文件转成data格式,其中name、 fileName 和mimeType 要根据实际情况填写 NSData *fileData = [NSData dataWithContentsOfFile:param[@"file"]]; [formData appendPartWithFileData:fileData name:@"file" fileName:@"file.zip" mimeType:@"file"]; } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) { } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { }];