将iOS字符串发送到PHP

时间:2014-08-04 09:14:33

标签: php ios webserver

我正在尝试让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'];)

2 个答案:

答案 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");
    }