AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
//网络请求超时
if (manager.requestSerializer.timeoutInterval == 10) {
NSLog(@"请求超时");
}
//数据格式
[manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", @"text/css", @"text/plain", nil]];
//将图片转化为NSDate类型;
UIImage *image = [UIImage imageNamed:@"baby_icon_cam"];
NSData *imageData = UIImagePNGRepresentation(image);
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *imagePath = [documentPath stringByAppendingString:@"/image.png"];
//保存文件到本地,document文件目录下面
[imageData writeToFile:imagePath atomically:YES];
//永久性存储
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:imagePath forKey:@"avatar"];
NSLog(@"imagePath = %@",imagePath);
//photo:后台要求传入参数
NSMutableDictionary *parameters = [[NSMutableDictionary alloc]init];
[parameters setObject:imagePath forKey:@"photo"];
//服务器接口
NSString *url = @"http://192.168.1.250/demo/Home/Addcontents/uplo";
//post请求,传输二进制文件的方法,AFNetWorking自带
[manager POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
UIImage *image = [UIImage imageNamed:@"Classes"];
NSData *data=UIImagePNGRepresentation(image);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 设置时间格式,存储文件的名字,以时间来命名不会有重复命名出现
formatter.dateFormat = @"yyyyMMddHHmmss";
NSString *str = [formatter stringFromDate:[NSDate date]];
NSString *fileName = [NSString stringWithFormat:@"%@.png", str];
//此处Photo,展示请求数据时字典的key值
[formData appendPartWithFileData:data name:@"Photo" fileName:fileName mimeType:@"image.png"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
}