2016-04-09 1 views
11

Wie kann ich Antworten Header für eine Anfrage abrufen? Unten ist eine Anfrage, die ich mache.Wie Alamofire Antwort Header für eine Anfrage abrufen

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

      ... 

     case .Failure(let error): 

      ... 

    } 

Vielen Dank im Voraus!

Antwort

23

Wenn die Antwort vom Typ NSHTTPURLResponse ist, können Sie die Kopfzeile von response.allHeaderFields abrufen.

Also, wenn Sie Alamofire responseJSON verwenden, können Sie auf NSHTTPURLResponse Eigenschaft zugreifen wie folgt aus:

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

Als Apple-Dokumentation sagt:

Ein Wörterbuch alle HTTP-Header-Felder enthalten, als Teil der empfangenen Antwort des Servers. Durch die Untersuchung dieses Wörterbuchs können Clients die vom HTTP-Server zurückgegebenen "rohen" Header-Informationen sehen.

Die Schlüssel in diesem Wörterbuch sind die Header-Feldnamen, wie sie vom Server empfangen werden. Eine Liste häufig verwendeter HTTP-Header-Felder finden Sie in RFC 2616.

So zum Beispiel einen Content-Typ in Antwort-Header zu bekommen Sie es auf diese Weise zugreifen können:

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

ich nicht in der Lage bin der Content-Type wie Sie Ihren Code zu werfen ... haben alles verändert? – Starlord