在iPhone应用程序中使用PHP webservice

时间:2012-10-01 11:51:20

标签: php iphone objective-c json web-services

我用PHP开发了一个web服务。它使用MySQL数据库。在这里,我使用了JSON。我想在我的iPhone应用程序中从此Web服务获取数据。我使用了一个有一个参数的函数。我如何在iPhone中使用它?

web服务:

<?php

echo getdata($_REQUEST['lastupdate']);

function getdata($lastupdatedate){

    $json = '{"foo-bar": 12345}';



    $obj = json_decode($json);

    //print $obj->{'foo-bar'}; // 12345



    $con = mysql_connect("localhost","un","pwd");



    if (!$con)



    {



    die('Could not connect: ' . mysql_error());



    }

    //print_r($con);



    mysql_select_db("roster", $con);







    $query = "select * from rates where LastUpdated = '".$lastupdatedate."' order by LastUpdated limit 1";

    $rs = mysql_query($query) or die($query);

    //print_r($rs);

    while($row=mysql_fetch_assoc($rs)){

    $record[] = $row;

    }



    $data = json_encode($record);



    header('Cache-Control: no-cache, must-revalidate');

    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

    header('Content-type: application/json');

    return $data;

}

?>

我正在申请网址:http://domain/t1.php?lastupdate=2012-09-01 01:00:00

1 个答案:

答案 0 :(得分:0)

您将为http://domain/t1.php?lastupdate=2012-09-01 01:00:00创建请求,然后解析您的响应JSON。

根据代码的运行方式(onload或基于某些用户操作),您的代码应该与raywenderlich.com

中的此示例类似。

基本代码段:

- (void)viewDidLoad
{
    [super viewDidLoad];

    dispatch_async(kBgQueue, ^{
        NSData* data = [NSData dataWithContentsOfURL:yourURLValue];
        [self performSelectorOnMainThread:@selector(fetchedData:) 
          withObject:data waitUntilDone:YES];
    });
}

- (void)fetchedData:(NSData *)responseData {
    //parse out the json data
    NSError* error;
    NSDictionary* json = [NSJSONSerialization 
        JSONObjectWithData:responseData //1

        options:kNilOptions 
        error:&error];

    NSArray* JSONResultValues = [json objectForKey:@"yourKey"]; //2

    NSLog(@"Results: %@", JSONResultValues); //3
}