Ios/swift/外部ライブラリ/Alamofire
提供: 初心者エンジニアの簡易メモ
Alamofireとは
httpに非同期でアクセスできるライブラリ
インストール
$ vi Podfile platform :ios, '9.0' target 'Helloworld' do use_frameworks! pod 'Alamofire', '~> 3.0' end
$ pod install
使い方
import Alamofire // json Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]).responseJSON { response in print(response.request) // original URL request print(response.response) // URL response print(response.result) // result of response serialization if let JSON = response.result.value { print("JSON: \(JSON)") } if response.result.isSuccess { let jsonDic = response.result.value as! NSDictionary let url = jsonDic["url"] as! String let headers = jsonDic["headers"] as! NSDictionary print(url); print(headers["Host"]) for (key, value) in headers { print(key) print(value) } } } // str Alamofire.request(.GET, "ttps://example.com/get", parameters: ["foo": "bar"]).responseString { response in if let str = response.result.value { print("str: \(str)") } }
参考:http://llcc.hatenablog.com/entry/2015/09/29/235112
画像API例
-php
$ret = array( 'cnt' => 2, 'imgs' => array( array( 'thumbnail' => "https://pbs.twimg.com/media/ClupGSKWEAAeOuy.jpg", 'name' => "オバマさん", ), array( 'thumbnail' => "https://pbs.twimg.com/media/ClfZX4sWEAEeJzB.jpg", 'name' => "ドロイド君", ), ), ); echo json_encode($ret); // 生成されたhtml {"cnt":2,"imgs":[{"thumbnail":"https:\/\/pbs.twimg.com\/media\/ClupGSKWEAAeOuy.jpg","name":"\u30aa\u30d0\u30de\u3055\u3093"},{"thumbnail":"https:\/\/pbs.twimg.com\/media\/ClfZX4sWEAEeJzB.jpg","name":"\u30c9\u30ed\u30a4\u30c9\u541b"}]}
-ImgInit.swift
class ImgInit { var name:String = "" var thumbnail:String = "" init(name: String, thumbnail: String) { self.name = name self.thumbnail = thumbnail } }
-SampleController.swift
Alamofire.request(.GET, "http://localhost/api/testimgs", parameters: ["param1": "value1"]).responseJSON { response in if response.result.isSuccess { let jsonDic = response.result.value as! NSDictionary let imgs = jsonDic["imgs"] as! NSArray let cnt = jsonDic["cnt"] as! Int print(cnt) var _imgs: Array<ImgInit> = [] for img in imgs { let name:String = img["name"] as! String let thumbnail:String = img["thumbnail"] as! String let _img = ImgInit(name: name, thumbnail: thumbnail) as ImgInit _imgs.append(_img) } // こんな感じで取得 for _img in _imgs { print("name=\(_img.name), thumbnail=\(_img.thumbnail)") } } }
-出力
オバマさん https://pbs.twimg.com/media/ClupGSKWEAAeOuy.jpg ドロイド君 https://pbs.twimg.com/media/ClfZX4sWEAEeJzB.jpg