LoginSignup
5
3

More than 5 years have passed since last update.

Objective-CでのwebAPI接続について

Last updated at Posted at 2017-12-05

こんにちは。

つい先日Objective-CからWebAPIに接続することがありましたので、その手法をまとめます。

URLを作る

まずString型でURLを生成していく

NSString *urlString = @"http://hogehoge.jp/hoge.php";

パラメータがある場合は別変数で保持する。
NSString *id = @"0";
NSString *idStr = [NSString stringWithFormat:@"id=%@", id];

URLとパラメータを文字列結合する。
NSString *urlWithParam = [NSString stringWithFormat:@"%@?%@",urlString,idStr];

URLエンコード

String→URLへとエンコードを行う。
NSURL *url =[NSURL URLWithString:urlWithParam];

接続準備

URLからリクエストURLを生成

接続時に使用するリクエストURLを生成する。
NSURLRequest *request = [NSURLRequest requestWithURL:url];

今回はサブスレッドで実行する必要があったため、処理を記載。
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];

接続

SessionDataTaskを使って接続〜判定結果による処理

NSURLSessionDataTask *task = [session dataTaskWithRequest:request
                              completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                  // 処理を書く
                                  //NSDictionary化
                                  NSDictionary *dic = [NSJSONSerialization 
                                      JSONObjectWithData:data options:0 error:nil];

                                  //判定
                                  bool *result = dic[@"return"][@"result"];

                                  if(result == true){
                                      NSLog(@"問題ありません。");
                                  }
                                  else{
                                      NSLog(@"問題があります。");              
                                  }
                                  // セッションの後始末
                                  [session invalidateAndCancel];
                              }];
    [task resume];

と上記のように書くことでWebAPIとの接続に成功しました!

まとめ

Objective-c初心者が調べながら実装を行いましたが、情報が新しいものが少なく
少々手間取りました。
ざっとまとめさせていただきました。
先輩方から教えていただいたことが、またどなたかの役に立ちますよう!

では!

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3