【发布时间】:2013-06-20 00:31:03
【问题描述】:
我正在尝试在我的 iPhone 应用程序中使用 ASIFormDataRequest 将我刚刚录制的视频以及我可以用来标识视频所属的字符串的字符串发送到服务器。这样做的代码在这里:
-(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,但我们将不胜感激。
编辑:我将setData:patientData 更改为setPostValue:_patientCode,现在帖子的一部分已正确发送,所以似乎setPostValue 有效,但setData 和setFile 无效。
【问题讨论】:
-
我知道这不是你问的,但你真的应该考虑使用 AFNetworking 而不是 ASIHTTPRequest。
标签: objective-c post asiformdatarequest