Suche senden
Hochladen
iOSハンズオントレーニング通信(NSURLConnection/NSURLSession)編
•
5 gefällt mir
•
5,958 views
聡 大久保
Folgen
NSURLConnection/NSURLSessionを利用して、Webからデータを取得するプログラムを学びます。
Weniger lesen
Mehr lesen
Technologie
Business
Melden
Teilen
Melden
Teilen
1 von 21
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
Masataka Tsukamoto
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
Hideki Saito
おしべめしべ
おしべめしべ
puriketu99 --
Ansible quickstart
Ansible quickstart
Hideki Saito
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
Hideki Saito
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Takeshi Kuramochi
初めての REST - Representational State Transfer
初めての REST - Representational State Transfer
Tatsumi Naganuma
Ansible2とOpenStackの関係
Ansible2とOpenStackの関係
Hideki Saito
Empfohlen
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
Masataka Tsukamoto
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
Hideki Saito
おしべめしべ
おしべめしべ
puriketu99 --
Ansible quickstart
Ansible quickstart
Hideki Saito
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
Hideki Saito
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Takeshi Kuramochi
初めての REST - Representational State Transfer
初めての REST - Representational State Transfer
Tatsumi Naganuma
Ansible2とOpenStackの関係
Ansible2とOpenStackの関係
Hideki Saito
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果
Tsuyoshi Torii
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
Kinuko Yasuda
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
akira6592
20061122
20061122
小野 修司
Ansible handson ood2016
Ansible handson ood2016
Hideki Saito
elasticsearchプラグイン入門
elasticsearchプラグイン入門
Shinsuke Sugaya
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
Mysql+Mroongaで全文検索
Mysql+Mroongaで全文検索
yoyamasaki
MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!
p1us2er0
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
オンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化する
Kenkichi Okazaki
Mroongaを選んだ理由と ちょっと嬉しかった話
Mroongaを選んだ理由と ちょっと嬉しかった話
Terui Masashi
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
Takeshi Kuramochi
Zabbixを2分でインストール
Zabbixを2分でインストール
真乙 九龍
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Mori Tetsuya
Getting started with Handoff
Getting started with Handoff
Yuichi Yoshida
Weeyble async 181009_tukky
Weeyble async 181009_tukky
shotaueda3
iOS WebView App
iOS WebView App
hagino 3000
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
Weitere ähnliche Inhalte
Was ist angesagt?
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果
Tsuyoshi Torii
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
Kinuko Yasuda
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
akira6592
20061122
20061122
小野 修司
Ansible handson ood2016
Ansible handson ood2016
Hideki Saito
elasticsearchプラグイン入門
elasticsearchプラグイン入門
Shinsuke Sugaya
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
Mysql+Mroongaで全文検索
Mysql+Mroongaで全文検索
yoyamasaki
MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!
p1us2er0
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
オンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化する
Kenkichi Okazaki
Mroongaを選んだ理由と ちょっと嬉しかった話
Mroongaを選んだ理由と ちょっと嬉しかった話
Terui Masashi
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
Takeshi Kuramochi
Zabbixを2分でインストール
Zabbixを2分でインストール
真乙 九龍
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
Was ist angesagt?
(16)
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
20061122
20061122
Ansible handson ood2016
Ansible handson ood2016
elasticsearchプラグイン入門
elasticsearchプラグイン入門
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Mysql+Mroongaで全文検索
Mysql+Mroongaで全文検索
MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
オンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化する
Mroongaを選んだ理由と ちょっと嬉しかった話
Mroongaを選んだ理由と ちょっと嬉しかった話
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
Zabbixを2分でインストール
Zabbixを2分でインストール
Spring bootでweb 基本編
Spring bootでweb 基本編
Ähnlich wie iOSハンズオントレーニング通信(NSURLConnection/NSURLSession)編
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Mori Tetsuya
Getting started with Handoff
Getting started with Handoff
Yuichi Yoshida
Weeyble async 181009_tukky
Weeyble async 181009_tukky
shotaueda3
iOS WebView App
iOS WebView App
hagino 3000
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
5分でわかったつもりになるParse.com
5分でわかったつもりになるParse.com
Kenta Tsuji
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
Yoichiro Sakurai
Using SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JS
Kazuhiro Kotsutsumi
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
CleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unity
NakanoYosuke1
Swift + JSON via WordPress
Swift + JSON via WordPress
Masahiro Nakashima
Web socketドロンくん その後-
Web socketドロンくん その後-
Yuuichi Akagawa
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
Shigeo Ueda
Spring Integration 超入門
Spring Integration 超入門
Yasutaka Sugamura
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
Kazuki Nakajima
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
Shunji Konishi
Ios corebluetooth beginner
Ios corebluetooth beginner
shinsuke79
Wolcome to swift
Wolcome to swift
Kyohei Ito
20120425
20120425
小野 修司
Ähnlich wie iOSハンズオントレーニング通信(NSURLConnection/NSURLSession)編
(20)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Getting started with Handoff
Getting started with Handoff
Weeyble async 181009_tukky
Weeyble async 181009_tukky
iOS WebView App
iOS WebView App
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
5分でわかったつもりになるParse.com
5分でわかったつもりになるParse.com
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
Using SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JS
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
CleanArchitecture with AssemblyDefinition in unity
CleanArchitecture with AssemblyDefinition in unity
Swift + JSON via WordPress
Swift + JSON via WordPress
Web socketドロンくん その後-
Web socketドロンくん その後-
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
Spring Integration 超入門
Spring Integration 超入門
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
Ios corebluetooth beginner
Ios corebluetooth beginner
Wolcome to swift
Wolcome to swift
20120425
20120425
Mehr von 聡 大久保
Oculus Interaction SDK で物をつかむ編
Oculus Interaction SDK で物をつかむ編
聡 大久保
Oculus Interaction SDK でグラブまわりの設定方法
Oculus Interaction SDK でグラブまわりの設定方法
聡 大久保
空間を認識する - 取り込みから表示まで -
空間を認識する - 取り込みから表示まで -
聡 大久保
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩
聡 大久保
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
聡 大久保
Hololens2でアカウント情報の取得
Hololens2でアカウント情報の取得
聡 大久保
HoloLens2とPCで、WebRTCで映像をやりとり
HoloLens2とPCで、WebRTCで映像をやりとり
聡 大久保
UnityでVRアプリ(Android Cardboard)を作る -準備編-
UnityでVRアプリ(Android Cardboard)を作る -準備編-
聡 大久保
VRでのUI設計のヒント
VRでのUI設計のヒント
聡 大久保
ハードサーフェイスモデリング勉強会(Blender2.79b編)
ハードサーフェイスモデリング勉強会(Blender2.79b編)
聡 大久保
Google Tangoで現実世界を感じてみよう
Google Tangoで現実世界を感じてみよう
聡 大久保
仮想マシンを仮想空間で見る Cloud roadshow
仮想マシンを仮想空間で見る Cloud roadshow
聡 大久保
AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法
聡 大久保
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
聡 大久保
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
聡 大久保
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
聡 大久保
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
聡 大久保
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
聡 大久保
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
聡 大久保
awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)
聡 大久保
Mehr von 聡 大久保
(20)
Oculus Interaction SDK で物をつかむ編
Oculus Interaction SDK で物をつかむ編
Oculus Interaction SDK でグラブまわりの設定方法
Oculus Interaction SDK でグラブまわりの設定方法
空間を認識する - 取り込みから表示まで -
空間を認識する - 取り込みから表示まで -
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2でアカウント情報の取得
Hololens2でアカウント情報の取得
HoloLens2とPCで、WebRTCで映像をやりとり
HoloLens2とPCで、WebRTCで映像をやりとり
UnityでVRアプリ(Android Cardboard)を作る -準備編-
UnityでVRアプリ(Android Cardboard)を作る -準備編-
VRでのUI設計のヒント
VRでのUI設計のヒント
ハードサーフェイスモデリング勉強会(Blender2.79b編)
ハードサーフェイスモデリング勉強会(Blender2.79b編)
Google Tangoで現実世界を感じてみよう
Google Tangoで現実世界を感じてみよう
仮想マシンを仮想空間で見る Cloud roadshow
仮想マシンを仮想空間で見る Cloud roadshow
AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)
Kürzlich hochgeladen
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Kürzlich hochgeladen
(11)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
iOSハンズオントレーニング通信(NSURLConnection/NSURLSession)編
1.
iOSハンズオントレーニング 通信(NSURLConnection/NSURLSession)編 大久保 聡
2.
目次 NSURLConnection(同期) NSURLConnection(非同期) NSURLSession ※ベースとなるプロジェクトをダウンロードしてください。 https:/ /github.com/ovjang/NoUseStoryBoard
3.
WebのAPIを叩いてみる Facebook、twitterなどで、サーバとのやりとりにWeb APIのI/F が提供されています。APIでやりとりを行い、結果をiOSアプリ で表示することができたら・・・・ 本ハンズオンでは、認証が無くユーザ登録だけで使える、ぐるな びWebサービスを使ってiOSからリクエストを投げて、レスポン スを受け取るところまでを、ハンズオンで実施します。 ユーザ登録が必要になります。手順は、ぐるなびWebサービスの ホームページをご覧ください。http:/ /api.gnavi.co.jp/api/use.html
4.
NSURLConnection(同期) リクエスト(NSURLRequest)を作成 NSURLConnectionでリクエストを発行する。 結果が返るまで、処理がブロックされます。 結果(NSURLResponse)を、受け取る。
5.
NSURLRequestの作成 レストラン検索APIで、freewordに”ワニ”、エリア を大阪(AREA120)で検索するためのリクエストを作 成します。 http:/ /api.gnavi.co.jp/ver1/RestSearchAPI/?keyid=0520eb3010561b785d34a9af18e126a2&freeword=%E3%83%AF%E3%83%8B &area=AREA120 - (void)viewDidLoad { [super viewDidLoad]; //
Do any additional setup after loading the view. ! // 送信したいURLを作成する NSString *urlString =@"http://api.gnavi.co.jp/ver1/RestSearchAPI/?keyid=0520eb3010561b785d34a9af18e126a2&freeWord=ワニ&area=AREA120"; urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:urlString]; // Mutableなインスタンスを作成し、インスタンスの内容を変更できるようにする NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // MethodにGETを指定する。 request.HTTPMethod = @"GET"; }
6.
NSURLConnectionでリクエストを発行する。 NSURLConnectionで、先ほど作成したリクエストを 発行します。sendSynchronousRequestメソッドを使 うことで同期処理となり、レスポンスが返却され終 わるまで、処理がブロックされます。 - (void)viewDidLoad { [super viewDidLoad]; //
Do any additional setup after loading the view. ! // 送信したいURLを作成する NSString *urlString =@"http://api.gnavi.co.jp/ver1/RestSearchAPI/?keyid=0520eb3010561b785d34a9af18e126a2&freeWord=ワニ&area=AREA120"; urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:urlString]; // Mutableなインスタンスを作成し、インスタンスの内容を変更できるようにする NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // MethodにGETを指定する。 request.HTTPMethod = @"GET"; NSHTTPURLResponse *httpResponse; NSError *err; /* HTTP リクエスト送信 */ NSData *contents = [NSURLConnection sendSynchronousRequest:request returningResponse:&httpResponse error:&err]; NSString *responseBody = [[NSString alloc] initWithData:contents encoding:NSUTF8StringEncoding]; NSLog(@"Response = %@", responseBody); }
7.
動かしてみる
8.
NSURLConnection(非同期) リクエスト(NSURLRequest)を作成 NSURLConnectionでリクエストを発行する。 結果をDelegateで、受け取る。
9.
NSURLRequestの作成 同期処理と同じです。 - (void)viewDidLoad { [super viewDidLoad]; //
Do any additional setup after loading the view. !! // 送信したいURLを作成する NSString *urlString =@"http://api.gnavi.co.jp/ver1/RestSearchAPI/?keyid=0520eb3010561b785d34a9af18e126a2&freeword=ワニ&area=AREA120"; urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:urlString]; ! // Mutableなインスタンスを作成し、インスタンスの内容を変更できるようにする NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // MethodにGETを指定する。 ! request.HTTPMethod = @"GET"; } レスポンス受け取り用に、NSURLConnectionDelegateプロ トコルを継承しておきます。 // // // // Screen1ViewController.h NoUseStoryBoard ! #import <UIKit/UIKit.h> ! @interface Screen1ViewController : UIViewController <NSURLConnectionDelegate> ! @end
10.
NSURLConnectionでリクエストを発行する。 NSURLConnectionで、先ほど作成したリクエストを発行し ます。initWithRequestメソッドを使うことで非同期処理 となり、レスポンスが随時返却されます。 delegateで返されるレスポンスの処理を行います。 - didReceiveDataでレスポンス返却の都度、受け取ったレ スポンスを保管します。 - 全部のレスポンスが返されたら、 connectionDidFinishLoadingが呼ばれます。
11.
レスポンス受け取り用に、 NSURLConnectionDelegateプロトコルを継承してお きます。 データ受け取り用のメンバ変数を用意します。 // // // // Screen1ViewController.h NoUseStoryBoard ! #import <UIKit/UIKit.h> ! @interface Screen1ViewController
: UIViewController <NSURLConnectionDelegate> { @private NSMutableData *mutableData; } ! @end
12.
レスポンス受け取り用のメンバ変数の初期化。 NSURLConnectionのinitWithRequestメソッドで、リクエ ストを発行します。 - (void)viewDidLoad { [super viewDidLoad]; //
Do any additional setup after loading the view. ! // 受信データ用 mutableData = [NSMutableData new]; // 送信したいURLを作成する NSString *urlString =@"http://api.gnavi.co.jp/ver1/RestSearchAPI/?keyid=0520eb3010561b785d34a9af18e126a2&freeword=ワニ&area=AREA120"; urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:urlString]; // Mutableなインスタンスを作成し、インスタンスの内容を変更できるようにする NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // MethodにGETを指定する。 request.HTTPMethod = @"GET"; /* HTTP リクエスト送信 */ NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; if (!connection) NSLog(@"failed to create connection"); } ! // データ受信時 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ [mutableData appendData:data]; } ! // 完了時 - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *str= [[NSString alloc] initWithData:mutableData encoding:NSUTF8StringEncoding]; NSLog(@"%@",str); }
13.
動かしてみる
14.
NSURLSession HTTPを介してコンテンツをダウンロードするAPI iOS7以上で利用可能 設定を一箇所にまとめて記述可能 バックグラウンド(アプリが後ろに回っても)で アップロード、ダウンロード可能
15.
基本 NSURLSessionConfiguration 接続の設定 (Cookie、Cache、HTTPヘッダー、認証、PROXYなど接続に関係する設定をまとめて設定できる。) ↓ NSURLSession 接続の管理(通信処理のキュー) ↓ NSURLSessionTask リクエスト + NSURLSessionDelegate リクエストの結果を処理
16.
NSURLSession作成 // // // // Screen1ViewController.h NoUseStoryBoard ! #import <UIKit/UIKit.h> ! @interface Screen1ViewController
: UIViewController <NSURLSessionTaskDelegate> ! @end - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // defaultSessionConfiguration or backgroundSessionConfiguration NSURLSessionConfiguration *configration = [NSURLSessionConfiguration defaultSessionConfiguration]; // NSURLSessionConfigurationを指定して NSURLSession作成 NSURLSession *session = [NSURLSession sessionWithConfiguration:configration delegate:self delegateQueue:nil]; }
17.
NSURLSessionTaskとDelegate タスク NSURLSessionTask 説明 基底クラス バックグラウンド 対応Delegate - NSDataオブジェクトを使用してデータを送受信 します。データタスクは、多 くの場合はインタ ラクティブな、アプリケーションからサーバへの NSURLSessionDataTask 短いリクエストを対象として います。データタ スクは、データの各部分が受信された後に一度に × NSURLSessionTaskDelegate 一部分ずつ、または完了ハンドラによって一括し て、アプリケーションにデータを返すことができ ます。 NSURLSessionUploadTask NSURLSessionDownloadTask ダウンロードタスク
は、ファイルの形でデータ を受信する。 アップロードタスクは は、(通常はファイルの形 で)データを送信する。 ○ ○ NSURLSessionTaskDelegate NSURLSessionDownloadTaskD elegate
18.
NSURLSessionDataTask作成 - (void)viewDidLoad { [super viewDidLoad]; //
Do any additional setup after loading the view. // defaultSessionConfiguration or backgroundSessionConfiguration NSURLSessionConfiguration *configration = [NSURLSessionConfiguration defaultSessionConfiguration]; // NSURLSessionConfigurationを指定して NSURLSession作成 NSURLSession *session = [NSURLSession sessionWithConfiguration:configration delegate:self delegateQueue:nil]; // リクエスト作成 NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]; // 先に作成したNSURLSessionに対して dataTaskWithRequest: メソッドを呼び出す NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request]; // resumeで処理開始 [dataTask resume]; }
19.
NSURLSessionTaskDelegeteの実装 // // // // Screen1ViewController.h NoUseStoryBoard ! #import <UIKit/UIKit.h> ! @interface Screen1ViewController
: UIViewController <NSURLSessionTaskDelegate> { @private NSMutableData *mutableData; } ! @end
20.
- (void)viewDidLoad { [super viewDidLoad]; //
Do any additional setup after loading the view. // 受信データ用 ! mutableData = [NSMutableData new]; // defaultSessionConfiguration or backgroundSessionConfiguration NSURLSessionConfiguration *configration = [NSURLSessionConfiguration defaultSessionConfiguration]; // NSURLSessionConfigurationを指定して NSURLSession作成 NSURLSession *session = [NSURLSession sessionWithConfiguration:configration delegate:self delegateQueue:nil]; // リクエスト作成 NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]; // 先に作成したNSURLSessionに対して dataTaskWithRequest: メソッドを呼び出す NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request]; // resumeで処理開始 [dataTask resume]; } ! // データ受信時 - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data { [mutableData appendData:data]; } ! // 完了時 - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error { if(error){ // エラーハンドリング }else{ NSString *str= [[NSString alloc] initWithData:mutableData encoding:NSShiftJISStringEncoding]; NSLog(@"%@",str); } }
21.
動かしてみる
Jetzt herunterladen