2015-01-13 4 views
8

Я использую Alamofire для моего запроса на отдых (POST) и получаю ответ JSON без проблем. Но я могу получить доступ только к телу ответа. Я хочу получить заголовки ответов. Разве это не возможно при использовании Alamofire?Как получить заголовки ответов при использовании Alamofire в Swift?

Вот мой фрагмент кода:

@IBAction func loginButtonPressed(sender: UIButton) { 
    let baseUrl = Globals.ApiConstants.baseUrl 
    let endPoint = Globals.ApiConstants.EndPoints.authorize 

    let parameters = [ 
     "apikey": "api_key_is_here", 
     "apipass": "api_pass_is_here", 
     "agent": "agent_is_here" 
    ] 

    Alamofire.request(.POST, baseUrl + endPoint, parameters: parameters).responseJSON { 
     (request, response, data, error) in let json = JSON(data!) 

     if let result = json["result"].bool { 
      self.lblResult.text = "result: \(result)" 
     } 
    } 
} 
+2

У меня нет опыта работы с Alamofire, но это не 'ответ' в завершении закрытия' NS HTTPURLResponse', который имеет свойство allHeaderFields? –

ответ

24

В ответ на NSHTTPURLResponse типа, вы должны быть в состоянии получить заголовки, как следует:

response.allHeaderFields 
+1

Если ответ типа NSHTTPURLResponse, то вам больше не нужно его использовать ... –

+1

Да, вы правы. Поскольку я использую Moya, мне нужен был бросок, поскольку он возвращает ответ как NSURLResponse. Отредактировал мой ответ! – Antoine

+0

Отлично, я смотрел, как это сделать с помощью Moya, просто нужно копать в свое редактирование :) Спасибо! – VivienG

3

Вот как получить доступ к заголовкам ответа in Swift 3:

Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers) 
    .responseJSON { response in 
    if let headers = response.response?.allHeaderFields as? [String: String]{ 
     let header = headers["token"] 
     // ... 
    } 
} 
Смежные вопросы