我正在尝试让iPhone应用程序将字符串发送到我的Web服务器。当我在我的php中打印$ _POST时,数组是空的。
这就是我目前正在尝试的;
//NSString *query = @"SELECT name FROM users";
NSString *query = @"select=name&from=users";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://localhost/www/service.php"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[query dataUsingEncoding:NSUTF8StringEncoding]];
[NSURLConnection connectionWithRequest:request delegate:self];
在php脚本中我只做print_r($ _ POST);我没有收到错误消息,只有一个空数组。我究竟做错了什么?我尝试过单独访问这两个字段,但它也无法工作($ POST [' select'];)
答案 0 :(得分:0)
尝试使用$_REQUEST
。可能$_POST
无效。
答案 1 :(得分:0)
当你说print_r打印出一个空数组时,你的意思是它在浏览器中将它打印出一个空数组吗?如果是这种情况,请不要担心 - 它不打算打印任何东西。我正在研究类似的东西,并意识到我正在以错误的方式调试它。
当您在xcode中运行模拟器时,您的PHP脚本将被调用,$ _POST将具有值。如果你在那一刻print_r它会暂时保存你的两个字段的值(但是你的浏览器无法看到这个)。如果添加一些NSLog并在xcode中打印出响应,您将看到该数组不为空。
我想说的是 - 你应该调试的唯一方法应该是xcode,不要看你的浏览器。
尝试使用此功能在日志中查看您的回复(此时已发布 - 请参阅第一条评论中的链接);
NSError *err;
NSURLResponse *response;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *resSrt = [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];
//This is for Response
NSLog(@"got response==%@", resSrt);
if(resSrt)
{
NSLog(@"got response");
}
else
{
NSLog(@"faield to connect");
}