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"
}
)