запрос с данными json и multipart с использованием afnetworking

Я использую AFNetworking 2.0 и мне нужно создать запрос к моему серверу с данными json и несколькими изображениями одновременно.

То, что я мог изображение, запрос будет в следующей структуре:

Content-Type    multipart/form-data;boundary=abc

--abc

{"title":"Product discussion","attendee":[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"}]}

--abc

Content-Disposition: form-data; name="img"Content-Type: image/png

...image data...

--abc--

Вот только упрощенная структура. Реальные данные собраний намного сложнее с большим количеством иерархий, поэтому я думаю, что лучше использовать json.

Однако я не знаю, как можно построить такую ​​структуру данных, используя сеть, например,

NSMutableDictionary *parameters = [NSMutableDictionary dictionary];

[parameters setValue:meeting.title forKey:@"title"];

NSMutableArray *attendeeList = [[NSMutableArray alloc]init];
for(Attendee *attendee in meeting.attendeeList)
{
NSMutableDictionary *attendeeDictionary = [[NSMutableDictionary alloc]init];
[attendeeDictionary setValue:attendeeID forKey:@"id"];
[attendeeList addObject: attendeeDictionary];
}
[parameters setValue:attendeeList forKey:@"attendee"];

httpClient.requestSerializer = [AFJSONRequestSerializer serializer];

[httpClient POST:@"createappointment.php" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
UIImage *image = [UIImage imageNamed:@"image.png"];
NSData *imageData = UIImagePNGRepresentation(image);
[formData appendPartWithFileData:imageData
name:@"img"fileName:@"img.png"mimeType:@"image/png"];
}

} success:....

но код, кажется, игнорирует AFJSONRequestSerializer и помещает заголовок собрания и идентификаторы участников в виде массива POST.

На стороне сервера PHP. Обычно я могу получить изображение из $ _FILE и данные json из php: // input + json_decode, но в этом случае я не знаю, каков наилучший способ анализа вышеуказанной структуры?

Кто-нибудь также выполнил такое требование и как правильно его решить на iOS и на стороне сервера?

1

Решение

Так что в этом случае вы получите это от $_POST вместо $_FILES или вы можете использовать file_get_contents("php://input")

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector