スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

swiftでHTTP通信とかして受け取った値で何かする

swiftでHTTP通信とかして受け取った値をviewとかに表示する方法のメモ。

1.UIViewControllerで、適当にUITextFieldとかUIButton配置して、outlet繋げておく。
2. 通信するクラスを作成。(api.swift)
import Foundation

class Api {
func sendPost(#url: String, params: [String: String], callback: (Dictionary<String, AnyObject>, String?) -> Void ) {
var request = NSMutableURLRequest(URL: NSURL(string: url)!)
var session = NSURLSession.sharedSession()
var responseBody = Dictionary<String, AnyObject>()
let paramsData = prepareParms(params)
request.HTTPMethod = "POST"

var err: NSError?
request.HTTPBody = paramsData
let task = NSURLSession.sharedSession().dataTaskWithRequest(
request, {
data, response, error in

if error != nil {
println("error=\(error)")
callback(Dictionary<String, AnyObject>(), error.localizedDescription)
}

println("response = \(response)")

let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
responseBody = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error: &err) as Dictionary<String, AnyObject>
println("responseBody = \(responseBody)")

callback(responseBody, nil)
})
task.resume()
}

// パラメータ作成
private func prepareParms(params: [String: String]) -> NSData {
var postString = String()

for (param, val) in params{
postString = postString.stringByAppendingString("\(param)=\(val)&")
}

return postStringData!
}
}


3.VCで、APIのクラス呼び出す。
class HttpViewController: UIViewController {
@IBOutlet weak var nickname: UITextField!
@IBAction func tapRegist(sender: UIButton) {
var api = Api()
api.sendPost(url: "http://test.com/get", params:["id": "1"]) {
(data: Dictionary<String, AnyObject>, error: String?) -> Void in

if error != nil {
// エラー表示
println(error)
} else {
println("get data -> \(data)")
nickname.text = data['nickname']
}
}
}
}


callbackの書き方がいまいちよくわからんかった。。

参考サイト
Swiftの略記法
HTTP in Swift
SwiftでHTTPリクエストする
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。