我不明白为什么这很难。所有在线教程和文章似乎都在谈论1.0 API,而那个已经没用了。
我尝试了几种不同的方法,但得到了不同的结果。我做错了什么?
上传任务 - 这似乎没有使用多部分表单,什么鬼?
NSMutableURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST"
URLString:[[NSURL URLWithString:url relativeToURL:[NSURL URLWithString:ApiBaseUrl]] absoluteString]
parameters:@{}
constructingBodyWithBlock:nil];
NSProgress *progress;
NSURLSessionUploadTask *task = [self.manager uploadTaskWithRequest:request
fromData:data
progress:&progress
completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error) {
NSLog(@"[error description] = %@", [error description]);
} else {
NSLog(@"success!");
}
}];
[task resume];
使用块发布文章-似乎没有附加任何内容
[self.manager POST:url
parameters:@{}
constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
[formData appendPartWithFileData:data
name:@"post[picture]"
fileName:@"picture.jpg"
mimeType:@"image/jpeg"];
}
success:^(NSURLSessionDataTask *task, id response) {
NSLog(@"Success");
}
failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"Error: %@", error);
}];
简单的帖子 - 这似乎几乎可以工作......但不是
[self.manager POST:url
parameters:@{@"post[picture][]":data}
success:^(NSURLSessionDataTask *task, id response) {
NSLog(@"Success");
}
failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"Error: %@", error);
}];
我很想让它起作用,但我不确定为什么它没起作用。
NSURLSessionUploadTask
时,您从哪里获取数据?我正在做类似的事情(尽管不是多部分POST),首先构建请求,然后使用request.HTTPBody
作为数据。 - Bart Vandendriessche