2015-01-13 30 views
8

benim istirahat (POST) istek için Alamofire kullanarak ve sorunsuz bir şekilde JSON yanıtını alıyorum. Ama sadece müdahale bedenine erişebilirim. Yanıt başlıklarını almak istiyorum. Alamofire kullanırken mümkün değil mi?Swift'de Alamofire kullanırken yanıt üstbilgileri nasıl alınır?

İşte
response.allHeaderFields 
+2

Alamofire ile ilgili deneyimim yok, ancak tamamlanma kapanışında 'yanıtı yok' 'NS AllUReadFields' özelliği olan HTTPURLResponse'? tepkisi NSHTTPURLResponse türde ise –

cevap

24

, sen başlıklarını almak mümkün olmalıdır: İşte

benim kod parçacığı olduğunu Swift 3'te:

Alamofire.request(.GET, requestUrl, parameters:parameters, headers: headers) 
    .responseJSON { response in 
    if let headers = response.response?.allHeaderFields as? [String: String]{ 
     let header = headers["token"] 
     // ... 
    } 
} 
+1

o zaman –

+1

Evet, haklısın ... artık döküm gerekmez. Moya'yı kullandığım için, NSURLResponse olarak yanıt döndürürken oyuncuya ihtiyacım vardı. Cevabımı düzenledim! – Antoine

+0

Harika Moya'yı kullanarak nasıl yapacağımı düşünüyordum, sadece düzenlemenize girmeniz gerekiyor :) Teşekkürler! – VivienG

3

yanıt başlıklarını erişmek için yapılması gerekenler: tepkisi NSHTTPURLResponse Çeşidi olduğu gibi takip olarak

@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)" 
     } 
    } 
} 
İlgili konular