美文网首页app接口
ios与php的交互2016.6

ios与php的交互2016.6

作者: cj2527 | 来源:发表于2016-06-24 18:01 被阅读751次

    场景一.ios上传数据,提交给php,它会写入网络数据库

    php把插入结果,以某种格式,例如json,发送数据给ios客户端,
    ios客户端,反序列化json,也就是解析。

    php端有一个insert.php接口文件,存放在服务器上,例如它的地址存放在http://127.0.0.1/php/insert.php,这个也就是接口地址了。
    如果你是单独开发ios端,那么php端的程序员会告诉你这个地址,以及它提供的参数,
    例如下面的userName,password。你上传的json数据的参数也是这个。
    完整代码如下:

    <?php
    header("Content-type: application/json; charset=utf-8");
    $con = mysql_connect("127.0.0.1","root","root");
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }else{
        echo '连接成功';
        echo "\n";
    }
    
    mysql_select_db("my_db", $con);
    mysql_query("SET NAMES 'utf8'",$con);
    
    //获得数据
    $json = file_get_contents('php://input');  
     // 反序列化JSON
    $de_json = json_decode($json,TRUE);
    //统计个数
    $count_json = count($de_json);
    //遍历json,插入到mysql数据库
    for ($i = 0; $i < $count_json; $i++)
    {    
        //取值
        $userName = $de_json[$i]['userName'];
        $password = $de_json[$i]['password'];
       
        //执行插入
        $result = mysql_query($sql,$con);
    
        if($result)
        {
            echo '成功插入';
        }else{
            echo '插入失败';
        }  
    }
    
    //关闭数据库连接
    mysql_close($con);
    
    ?>
    

    ios端,在某个方法中:

    -(void)postUpload{
      
        //1.url,接口地址,php端提供的
        NSURL *url =[NSURL URLWithString:@"http://127.0.0.1/php/insert.php"];
        //2.请求
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:5];
        
        //2.1设置HTTP方法
        request.HTTPMethod=@"POST";
        
        //2.2上传json类型数据,本质是一个字符串
     
        //序列化:将数组、字典转为二进制
        NSDictionary *dic1 = @{@"userName":@"cj",@"password":@"27"};
        NSDictionary *dic2 = @{@"userName":@"cj2527",@"password":@"26"};
        NSArray *array = @[dic1,dic2];
        //检测能否被序列化
        if (![NSJSONSerialization isValidJSONObject:array]) {
            NSLog(@"格式不正确!");
            return;
        }
        request.HTTPBody = [NSJSONSerialization dataWithJSONObject:array options:0 error:NULL];
        
        //3.定义Session连接
     
        NSURLSession *session = [NSURLSession sharedSession];
        NSData *data = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:nil];
        //定义上传任务
        NSURLSessionUploadTask *task = [session uploadTaskWithRequest:request fromData:data completionHandler:^(NSData * __nullable data, NSURLResponse * __nullable response, NSError * __nullable error) {
                    id result = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
                   NSLog(@"%@",result);
        }];
       //开启任务
        [task resume];
    

    相关文章

      网友评论

      • __________mo:hi,您好,使用php做开发的时候,APP端post请求的参数必须用json格式吗?我使用字典在PHP端获取不到值,谢谢解答~
        cj2527:是的

      本文标题:ios与php的交互2016.6

      本文链接:https://www.haomeiwen.com/subject/vtmodttx.html