【发布时间】:2016-08-10 11:32:17
【问题描述】:
我正在使用 AFNetworking 2.0。向服务器发出带有 multipart-formdata 的 post 请求。我正在尝试上传视频和图像以及 3 个字符串参数。
这适用于 POSTMAN 客户端,但不适用于应用程序。
这是不工作的确切代码。
UIImage *image = img;
NSData *imageData = UIImagePNGRepresentation(image);
NSURL *urlVideo = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SampleVideo_1280x720_1mb" ofType:@"mp4"]];
NSData *videoData = [NSData dataWithContentsOfURL:urlVideo];
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:requestURl]];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromArray:@[@"application/json",@"text/html"]];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:@"POST" parameters:value constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
[formData appendPartWithFileData:imageData name:@"buzzymain_image" fileName:@"photo" mimeType:@"image/png"];
[formData appendPartWithFileData:videoData name:@"buzzymain" fileName:@"video" mimeType:@"video/mp4"];
[formData appendPartWithFormData:[[value valueForKey:@"buzzymain_category"] dataUsingEncoding:NSUTF8StringEncoding] name:@"buzzymain_category"];
[formData appendPartWithFormData:[[value valueForKey:@"buzzymain_title"] dataUsingEncoding:NSUTF8StringEncoding] name:@"buzzymain_title"];
[formData appendPartWithFormData:[[value valueForKey:@"buzzyuser_id"] dataUsingEncoding:NSUTF8StringEncoding] name:@"buzzyuser_id"];
} success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSString *json = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"-------\n");
NSLog(@"%@", json);
NSLog(@"-------\n");
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
{
//Something wrong
}
}];
代码错误:
{"status":"0","message":"请输入用户ID。"}
POSTMAN 的成功:
{"status":"1","message":"操作成功执行。"}
附:上面代码中的“value”是一个NSDictionary。
请指出我哪里出错了?
【问题讨论】:
-
您好,为了确定,值确实包含与键 Buzzyuser_id 关联的有效 user_id(没有错字,没有大写)?
-
“值”包含“buzzyuser_id”?
-
@FlorianBurel,谢谢,但是没有类型或任何其他情况,我已经检查了很多次。在邮递员中,它可以使用相同的参数正常工作。
-
@EktaMakadiya,是的,它包含它。我已经检查过它是否包含所有需要的参数。
-
@Hemang 请检查我的答案。
标签: ios objective-c multipartform-data afnetworking-2