web-dev-qa-db-ja.com

リクエストのAlamofire応答ヘッダーを取得する方法

リクエストの応答ヘッダーを取得するにはどうすればよいですか?以下は私が行うリクエストです。

Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers)
        .responseJSON { response in switch response.result {
        case .Success(let JSON):

            ...

        case .Failure(let error):

            ...

    }

前もって感謝します!

18
qbo

応答のタイプがNSHTTPURLResponseの場合、response.allHeaderFieldsからヘッダーを取得できます。

したがって、Alamofire responseJSONを使用すると、次のようなNSHTTPURLResponseプロパティにアクセスできます。

Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers).responseJSON {
        response in
        print(response.response?.allHeaderFields)
}

As Appleドキュメンテーションは言う:

サーバーの応答の一部として受信したすべてのHTTPヘッダーフィールドを含む辞書。この辞書を調べることで、クライアントはHTTPサーバーから返された「生の」ヘッダー情報を確認できます。

このディクショナリのキーは、サーバーから受信したヘッダーフィールド名です。一般的に使用されるHTTPヘッダーフィールドのリストについては、RFC 2616を参照してください。

たとえば、応答ヘッダーでコンテンツタイプを取得するには、その方法でアクセスできます。

if let contentType = response.response?.allHeaderFields["Content-Type"] as? String {
        // use contentType here
}
42
kamwysoc