Playground でURLSessionを試す(GET編)

iOSの標準ライブラリーだけで通信処理をすることになったのでこの基にURLSessionの使い方をみてみる

環境

  • Xcode8 bata4
  • Swift3
  • Playground

サーバーはWebAPIをとりあえず試せるサイトhttp://httpbin.org/を使用します

GETで実行

//: Playground - noun: a place where people can play

import UIKit  
import PlaygroundSupport

//Construct url object via string
var url = NSURL(string: "http://httpbin.org/get")  
let config = URLSessionConfiguration.default  
let session = URLSession(configuration: config)  
var req = URLRequest(url: url! as URL)

//NSURLSessionDownloadTask is retured from session.dataTaskWithRequest
let task = session.dataTask(with: req as URLRequest, completionHandler: {  
    (data, resp, err) in
    print(resp?.url!)
    print(NSString(data: data!, encoding: String.Encoding.utf8.rawValue))
})
task.resume()

//非同期処理を許可する
PlaygroundPage.current.needsIndefiniteExecution = true  

結果

Optional(http://httpbin.org/get)  
Optional({  
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "en-us", 
    "Host": "httpbin.org", 
    "User-Agent": "NSSessionSample/1 CFNetwork/802.1 Darwin/15.6.0"
  }, 
  "origin": "126.126.186.75", 
  "url": "http://httpbin.org/get"
}
)