php - 使用 NSURLRequest 通过 POST 将键值对传递给 PHP 脚本

标签 php iphone objective-c cocoa-touch nsurlrequest

我是 objective-c 的新手,我希望使用 POST 将一些键值对传递给 PHP 脚本。我正在使用以下代码,但数据似乎并没有被发布。我也尝试使用 NSData 发送内容,但似乎都不起作用。

 NSDictionary* data = [NSDictionary dictionaryWithObjectsAndKeys:
    @"bob", @"sender",
    @"aaron", @"rcpt",
    @"hi there", @"message",
    nil];

 NSURL *url = [NSURL URLWithString:@"http://myserver.com/script.php"];
 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

 [request setHTTPMethod:@"POST"];
 [request setHTTPBody:[NSData dataWithBytes:data length:[data count]]];

  NSURLResponse *response;
  NSError *err;
  NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
  NSLog(@"responseData: %@", content);

这被发送到这个简单的脚本以执行数据库插入:

<?php $sender = $_POST['sender'];
      $rcpt = $_POST['rcpt'];
      $message = $_POST['message'];

      //script variables
      include ("vars.php");

      $con = mysql_connect($host, $user, $pass);
      if (!$con)
      {
        die('Could not connect: ' . mysql_error());
      }

      mysql_select_db("mydb", $con);

      mysql_query("INSERT INTO php_test (SENDER, RCPT, MESSAGE) 
      VALUES ($sender, $rcpt, $message)");

      echo "complete"
?>

有什么想法吗?

最佳答案

感谢大家的建议。最后我设法通过使用给出的东西解决了这个问题 here .

代码:

NSString *myRequestString = @"sender=my%20sender&rcpt=my%20rcpt&message=hello";
NSData *myRequestData = [ NSData dataWithBytes: [ myRequestString UTF8String ] length: [ myRequestString length ] ];
NSMutableURLRequest *request = [ [ NSMutableURLRequest alloc ] initWithURL: [ NSURL URLWithString: @"http://people.bath.ac.uk/trs22/insert.php" ] ]; 
[ request setHTTPMethod: @"POST" ];
[ request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[ request setHTTPBody: myRequestData ];
NSURLResponse *response;
NSError *err;
NSData *returnData = [ NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&err];
NSString *content = [NSString stringWithUTF8String:[returnData bytes]];
NSLog(@"responseData: %@", content);

关于php - 使用 NSURLRequest 通过 POST 将键值对传递给 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2544650/

相关文章:

php - 检查数组中的值

无论定义什么数据类型,PHP sqlite 都会返回所有字符串

PHP - 使用正则表达式解析字符串

php - 绑定(bind)参数困难

ios - NSNotificationCenter。将数据从一个发送到另一个 ViewControllers Swift

iphone - 如何将 xml 结果传递给核心数据对象

objective-c - 从 '(NSNumber) -> NSNumber' 转换为无关类型 '(Any) -> Any' 总是失败

iphone - NSDate对象显示错误的时间

ios - 离开 View 时停止异步 block 请求(AFNetworking;iOS)

ios - 给定纬度和经度生成快照的最佳方法是什么,真的鼓励跳过 MKMapView