まあ、出尽くしてるので、自分用のメモということで。
サーバへ得点のランキング登録とか、するのにとにかく簡単に実現する方法を模索して・・
storyboardの使えるバージョンで作成。
たぶん、古いのでも動くと思う。
試し用に、2つボタンを作成。
1つに「GET」もいっこに「POST」の名前を付けときます。
ViewController.hに
IBOutlet UIButton *getbtn;
IBOutlet UIButton *postbtn;
を書いときます。
で、ぴゅーっとボタンにつなげておきます。
「GET」ボタンにgetbtn
「POST」ボタンにpostbtn
ViewController.mに「GET」「POST」のIBAction作ってみます
「GET」用
-(IBAction)getReq{
//GETの場合
NSLog(@”GET”);
NSURL * url = [NSURL URLWithString:@"http://ほにゃらら/test.php?GET"];
NSURLRequest * request = [NSURLRequest requestWithURL:url];
NSData * response = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil
error:nil];
NSString * responseString = [[NSString alloc]initWithData:response encoding:NSUTF8StringEncoding];
NSLog(@”%@”, responseString);
}
「POST」用
-(IBAction)posttReq{
//POSTの場合
NSLog(@”POST”);
NSURL * url = [NSURL URLWithString:@"http://ほにゃらら/test2.php?POST"];
NSData *myRequestData =
[@"aaaaa=くろすけ&bbbbb=もてこ"
dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody:myRequestData];
NSData * response = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil
error:nil];
NSString * responseString = [[NSString alloc]initWithData:response encoding:NSUTF8StringEncoding];
NSLog(@”%@”, responseString);
}
で、それぞれのボタンのTouch Up Inside にIBAction を関連付ける。
で、次サーバのphpです。
[test.php]
if($_SERVER["QUERY_STRING"] == 'GET'){
echo "Content-type: text/plain; charset=utf-8\r\n";
echo "\r\n";
echo "response data!!";
}
?>
[test2.php]
if($_SERVER["QUERY_STRING"] == 'POST'){
echo "Content-type: text/plain; charset=utf-8\r\n";
echo "\r\n";
echo "REQUEST_METHOD : ".$_SERVER["REQUEST_METHOD"]."\r\n";
echo "CONTENT_LENGTH : ".$_SERVER["CONTENT_LENGTH"]."\r\n";
echo "aaaaa: ". $_POST["aaaaa"]."\r\n";
echo "bbbbb: ".$_POST["bbbbb"]."\r\n";
}
?>
こんな感じで、戻ってきた文字列NSLogにだしてるので・・
phpで、DB処理とかエラーステータス書いとけば、大体のことできる。
(´・ω・`)

トラックバック

このブログ記事に対するトラックバックURL:

コメント & トラックバック

秀逸な記事とても参考になりました。本当にありがとうございます!

コメントありがとうございます^^
ぽつぽつ更新しておりますので、ご参考になることがあれば幸いです^^

はじめまして。
iPhoneアプリ開発初心者です。

こちらのソースを参考にコードを書いていたのですが、GET/PSTの NSLog(@”%@”, responseString);の部分でログコンソールにphpのソースコードが以下のように全て表示されてしまいます。

——————————————————
2012-07-23 00:02:02.444 test[12420:f803] if($_SERVER["QUERY_STRING"] == ‘POST’){
echo “Content-type: text/plain; charset=utf-8\r\n”;
echo “\r\n”;
echo “REQUEST_METHOD : “.$_SERVER["REQUEST_METHOD"].”\r\n”;
echo “CONTENT_LENGTH : “.$_SERVER["CONTENT_LENGTH"].”\r\n”;
echo “aaaaa: “. $_POST["aaaaa"].”\r\n”;
echo “bbbbb: “.$_POST["bbbbb"].”\r\n”;
}
?>
——————————————————

iphoneアプリでhttp通信をする際には記事にあるコードを書くだけではダメ、など何かあるのでしょうか。
ぜひ教えていただけたら、と思います。

NSLogに、echo文が表示されているのを見ると
WEBサーバのPHPが、正常に動いていないのではないでしょうか?

リクエストされる、アドレスを一度WEBブラウザで正しく表示されるか
ご確認してみてください。

現在の、WEBサーバの設定だと
WEBブラウザでもecho~~と、おそらく表示されてしまうはずです。

WEBサーバの環境など詳細を頂ければ、アドバイスできるかもしれません。
一度、ご確認を^^

Comment feed

コメントする