Php AFNetworking multipart/form data POST发送不正确的JSON字典数组

Php AFNetworking multipart/form data POST发送不正确的JSON字典数组,php,ios,objective-c,afnetworking,afnetworking-2,Php,Ios,Objective C,Afnetworking,Afnetworking 2,我不知道这是一个bug还是我做得不对 这篇文章看起来很接近于为我解决问题,但没有: 我试图发送一个带有图像的多部分/表单数据POST,并将一个字典(包含一个字典数组)传递给“parameters”,作为JSON发送 字典: NSDictionary *parameters = @{@"photos" : @[@{@"photoID":@"0", @"imageURL":@"0", @"imageName":@"0"},

我不知道这是一个bug还是我做得不对

这篇文章看起来很接近于为我解决问题,但没有:

我试图发送一个带有图像的多部分/表单数据POST,并将一个字典(包含一个字典数组)传递给“parameters”,作为JSON发送

字典:

NSDictionary *parameters = @{@"photos" : @[@{@"photoID":@"0", @"imageURL":@"0", @"imageName":@"0"},
                                           @{@"photoID":@"1", @"imageURL":@"1", @"imageName":@"1"},
                                           @{@"photoID":@"2", @"imageURL":@"2", @"imageName":@"2"}]};
请求:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];


[manager POST:@"myURL" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [formData appendPartWithFileData:imageData name:@"image" fileName:@"image" mimeType:@"image/png"];

    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Success: %@", responseObject);

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
…多个单条目词典的数组:(

而不是:

{
    photos =     (
                {
            imageName = 0;
            imageURL = 0;
            photoID = 0;
        },
                {
            imageName = 1;
            imageURL = 1;
            photoID = 1;
        },
                {
            imageName = 2;
            imageURL = 2;
            photoID = 2;
        }
    );
}

任何帮助都会很好,谢谢!

AFNetworking
中构造多部分请求时,参数以
表单数据的形式发送。要在多部分响应中发送
JSON
编码体,您需要序列化它们,并按照服务器期望的接收方式将它们附加到多部分响应中。

根据服务器对它们的期望,您可以使用以下内容:

 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myJSON options:0 error:nil];

 [formData appendPartWithFileData:jsonData name:@"name" fileName:nil mimeType:@"application/json"];

AFNetworking
中构造多部分请求时,参数将作为
表单数据发送。要在多部分响应中发送
JSON
编码体,您需要将其序列化,并按照服务器预期的接收方式将其附加到多部分响应中

根据服务器对它们的期望,您可以使用以下内容:

 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myJSON options:0 error:nil];

 [formData appendPartWithFileData:jsonData name:@"name" fileName:nil mimeType:@"application/json"];

AFNetworking
中构造多部分请求时,参数将作为
表单数据发送。要在多部分响应中发送
JSON
编码体,您需要将其序列化,并按照服务器预期的接收方式将其附加到多部分响应中

根据服务器对它们的期望,您可以使用以下内容:

 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myJSON options:0 error:nil];

 [formData appendPartWithFileData:jsonData name:@"name" fileName:nil mimeType:@"application/json"];

AFNetworking
中构造多部分请求时,参数将作为
表单数据发送。要在多部分响应中发送
JSON
编码体,您需要将其序列化,并按照服务器预期的接收方式将其附加到多部分响应中

根据服务器对它们的期望,您可以使用以下内容:

 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myJSON options:0 error:nil];

 [formData appendPartWithFileData:jsonData name:@"name" fileName:nil mimeType:@"application/json"];

如果要上载多个图像,并且要使所有图像的参数名称保持相同,请按如下操作:

NSDictionary *parameters = @{@"user_key": @"*****"};
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:queryStringss parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
 NSError *error;
[formData appendPartWithFileData:imageData name:@"photo_file[0]" fileName:@"Picture44.png" mimeType:@"image/png"];
[formData appendPartWithFileData:imageData1 name:@"photo_file[1]" fileName:@"Picture45.png" mimeType:@"image/png"];
} error:nil];
NSDictionary*参数=@{@“用户密钥”:@“*****”};
NSMutableURLRequest*request=[[AFHTTPRequestSerializer]multipartFormRequestWithMethod:@“POST”URLString:queryStringss参数:参数constructingBodyWithBlock:^(id formData){
n错误*错误;
[formData appendPartWithFileData:imageData名称:@“photo_文件[0]”文件名:@“Picture44.png”mimeType:@“image/png”];
[formData appendPartWithFileData:imageData1名称:@“photo_文件[1]”文件名:@“Picture45.png”mimeType:@“image/png”];
}错误:无];

通过这种方式,文件将以数组形式发送到服务器。

如果要上载多个图像,并且要使所有图像的参数名称保持不变,请按以下方式执行:

NSDictionary *parameters = @{@"user_key": @"*****"};
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:queryStringss parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
 NSError *error;
[formData appendPartWithFileData:imageData name:@"photo_file[0]" fileName:@"Picture44.png" mimeType:@"image/png"];
[formData appendPartWithFileData:imageData1 name:@"photo_file[1]" fileName:@"Picture45.png" mimeType:@"image/png"];
} error:nil];
NSDictionary*参数=@{@“用户密钥”:@“*****”};
NSMutableURLRequest*request=[[AFHTTPRequestSerializer]multipartFormRequestWithMethod:@“POST”URLString:queryStringss参数:参数constructingBodyWithBlock:^(id formData){
n错误*错误;
[formData appendPartWithFileData:imageData名称:@“photo_文件[0]”文件名:@“Picture44.png”mimeType:@“image/png”];
[formData appendPartWithFileData:imageData1名称:@“photo_文件[1]”文件名:@“Picture45.png”mimeType:@“image/png”];
}错误:无];

通过这种方式,文件将以数组形式发送到服务器。

如果要上载多个图像,并且要使所有图像的参数名称保持不变,请按以下方式执行:

NSDictionary *parameters = @{@"user_key": @"*****"};
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:queryStringss parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
 NSError *error;
[formData appendPartWithFileData:imageData name:@"photo_file[0]" fileName:@"Picture44.png" mimeType:@"image/png"];
[formData appendPartWithFileData:imageData1 name:@"photo_file[1]" fileName:@"Picture45.png" mimeType:@"image/png"];
} error:nil];
NSDictionary*参数=@{@“用户密钥”:@“*****”};
NSMutableURLRequest*request=[[AFHTTPRequestSerializer]multipartFormRequestWithMethod:@“POST”URLString:queryStringss参数:参数constructingBodyWithBlock:^(id formData){
n错误*错误;
[formData appendPartWithFileData:imageData名称:@“photo_文件[0]”文件名:@“Picture44.png”mimeType:@“image/png”];
[formData appendPartWithFileData:imageData1名称:@“photo_文件[1]”文件名:@“Picture45.png”mimeType:@“image/png”];
}错误:无];

通过这种方式,文件将以数组形式发送到服务器。

如果要上载多个图像,并且要使所有图像的参数名称保持不变,请按以下方式执行:

NSDictionary *parameters = @{@"user_key": @"*****"};
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:queryStringss parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
 NSError *error;
[formData appendPartWithFileData:imageData name:@"photo_file[0]" fileName:@"Picture44.png" mimeType:@"image/png"];
[formData appendPartWithFileData:imageData1 name:@"photo_file[1]" fileName:@"Picture45.png" mimeType:@"image/png"];
} error:nil];
NSDictionary*参数=@{@“用户密钥”:@“*****”};
NSMutableURLRequest*request=[[AFHTTPRequestSerializer]multipartFormRequestWithMethod:@“POST”URLString:queryStringss参数:参数constructingBodyWithBlock:^(id formData){
n错误*错误;
[formData appendPartWithFileData:imageData名称:@“photo_文件[0]”文件名:@“Picture44.png”mimeType:@“image/png”];
[formData appendPartWithFileData:imageData1名称:@“photo_文件[1]”文件名:@“Picture45.png”mimeType:@“image/png”];
}错误:无];
这样,文件将作为数组发送到服务器