2016年7月7日木曜日

[Swift] NSURLSessionでカスタムヘッダーを追加する

どうも俺です。

 NSURLSessionに独自のユーザーエージェントなど、ヘッダー内をカスタマイズする方法。
Swift v2です。

let url = NSURL(string:"http://hogehoge.com")
let config = NSURLSessionConfiguration.defaultSessionConfiguration()

// ここからヘッダー追加
config.HTTPAdditionalHeaders = ["User-Agent": "MyOriginalUserAgent"]
config.hTTPAdditionalHeaders = ["Custom-Header": "This is MyCustomHeader"]

let session = NSURLSession(configuration: config)
let request = NSURLRequest(URL: url)
let task = session.dataTaskWithRequest(request)
task.resume()

これで追加できます。
サーバー側でログを確認すると、
HTTP_USER_AGENT : MyOriginalUserAgent
HTTP_CUSTOM_HEADER : This is MyCustomHeader

のように、
・PREFIXに「HTTP_」が付く。
・全て大文字に変換される。
・「-(ハイフン)」は「_(アンダースコア)」に変換される。
という変換処理が内部的に走るようです。


以上でぇぇぇす。