comment récupérer des en-têtes de réponse pour une demande? Voici une demande que je fais.
Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers)
.responseJSON { response in switch response.result {
case .Success(let JSON):
...
case .Failure(let error):
...
}
Merci d'avance!
Si la réponse est de type NSHTTPURLResponse
, vous pouvez obtenir l'en-tête de response.allHeaderFields
.
Ainsi, lorsque vous utilisez Alamofire responseJSON, vous pouvez accéder à la propriété NSHTTPURLResponse comme ceci:
Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers).responseJSON {
response in
print(response.response?.allHeaderFields)
}
Comme Apple dit:
Un dictionnaire contenant tous les champs d'en-tête HTTP reçus dans le cadre de la réponse du serveur. En examinant ce dictionnaire, les clients peuvent voir les informations d'en-tête "brutes" renvoyées par le serveur HTTP.
Les clés de ce dictionnaire sont les noms des champs d'en-tête, tels qu'ils ont été reçus du serveur. Voir RFC 2616 pour une liste des champs d'en-tête HTTP couramment utilisés.
Ainsi, pour obtenir par exemple un type de contenu dans l'en-tête de réponse, vous pouvez y accéder de cette manière:
if let contentType = response.response?.allHeaderFields["Content-Type"] as? String {
// use contentType here
}