この関数でウェブサーバーにリクエストを送信しています:
-(void)getData
{
NSURL *url = [NSURL URLWithString:@"http://10.10.10.10/application.php"]; //some address
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
request.delegate = self;
[request setPostValue:@"6577098" forKey:@"serial_number"];
[request startAsynchronous];
}
次に、 application.php のサーバー部分で:
<?php
//$serial_number from $_POST["serial_number"];
$serial_number = $this->getString('serial_number', 64);
$stmt = $this->pdo->prepare('SELECT S.DateTime, SN.Name FROM States S LEFT JOIN StateNames SN on SN.ID=S.State_ID WHERE S.SerialNumber = ?');
$stmt->execute(array($serial_number));
$states = $stmt->fetchAll(PDO::FETCH_ASSOC);
$result = array();
foreach ($states as $state)
{
$result[] = $state;
}
sendResponse(200, json_encode($result));
?>
この部分は、ブラウザから試してみると機能します。機能し、次のようになります。
[{"DateTime":"2013-05-15 10:22:11","Name":"No water"},{"DateTime":"2013-05-13 14:55:31","Name":"Water"}]
次に、Xcode で処理に戻ります。
-(void)requestFinished:(ASIHTTPRequest *)request
{
if (request.responseStatusCode == 200)
{
NSString *responseString = [request responseString];
NSLog(@"%@",responseString); //if I try this nothing happened
}
}
JSONで何かをしなければならないと思います。リクエストに対する反応が悪いと思います。しかし、私はresponceStatusCode 200を持っています。誰か助けてもらえますか? 何が問題なのかわかりませんでした。ありがとう