Многоэтапная загрузка изображения работала нормально с AFNetwrking 1.0, и мне нужно обновить систему до 3.0. Однако параметры запроса и тело исчезают. В AFURLRequestSerialization.m, похоже, говорится:
[self.request setHTTPBodyStream:self.bodyStream]
, хотя части и корпус присутствуют в self.bodyStream
. Похоже, что ошибка не возвращается из setHTTPBodyStream
.
Это код:
AFHTTPRequestSerializer *requestSerializer = [AFHTTPRequestSerializer serializer];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.securityPolicy.allowInvalidCertificates = YES; // not recommended for production
manager.securityPolicy.validatesDomainName = NO;
[requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"content-type"];
NSMutableURLRequest *request = [requestSerializer multipartFormRequestWithMethod:@"POST" URLString: ServerPath
parameters:sendDictionary constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData: imageData name:@"file" fileName:@"temp.jpeg" mimeType:@"image/jpeg"];
} error:nil];
[request setTimeoutInterval:20000];
NSURLSessionUploadTask *uploadTask;
NSLog(@"Request body %@", [[NSString alloc] initWithData:[request HTTPBody] encoding:NSUTF8StringEncoding]); NSLog(@"Request HTTP Headers: %@", request.allHTTPHeaderFields); NSLog(@"%@", [request HTTPBody]);
uploadTask = [manager