Я пытаюсь использовать ASIFormDataRequest в своем приложении iPhone для отправки видео, которое я только что записал на сервер, а также строки, которую я могу использовать для ID, кто видео принадлежит. Код для этого здесь:Сервер не получает POST-запрос от ASIFormDataRequest в Objective-C
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSURL *urlvideo = [info objectForKey:UIImagePickerControllerMediaURL];
NSString *urlString=[urlvideo path];
NSLog(@"urlString=%@",urlString);
NSString *str = [NSString stringWithFormat:@"http://www.mysite.com/videodata.php"];
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
NSData *patientData = [_patientCode dataUsingEncoding:NSUTF8StringEncoding];
[request setFile:urlString forKey:@"video"];
[request setData:patientData forKey:@"patientcode"];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request startSynchronous];
NSLog(@"responseStatusCode: %i",[request responseStatusCode]);
NSLog(@"responseString: %@",[request responseString]);
[picker dismissViewControllerAnimated:YES completion:nil];
}
Все кажется работать правильно, я получаю код статуса 200 и метод отделки, как и ожидалось. Однако, по-видимому, ничего не получает php-файл на сервере. Я добавил эту строку в мой серверный код PHP:
echo(count($_POST));
Это возвращает 0, так что кажется, как будто ничего не на самом деле получить размещенные ASIFormDataRequest. Я чувствую, что может быть какой-то простой шаг, который мне не хватает, поскольку я никогда раньше не использовал ASIFormDataRequest, но любая помощь была бы весьма признательна.
EDIT: Я изменил setData:patientData
к setPostValue:_patientCode
и теперь, когда часть поста послана правильно, так что кажется, как будто setPostValue
работ, но setData
и setFile
нет.
Я знаю, что это не то, что вы просили, но вы действительно должны думать об использовании AFNetworking вместо ASIHTTPRequest. –