Ios 在Swift中使用Alamofire时如何获取响应头?

Ios 在Swift中使用Alamofire时如何获取响应头?,ios,iphone,swift,http-headers,alamofire,Ios,Iphone,Swift,Http Headers,Alamofire,我正在为我的Rest(POST)请求使用,并无缝地获得JSON响应。但我只能访问响应体。我想获取响应标题。使用Alamofire难道不可能吗 以下是我的代码片段: @IBAction func loginButtonPressed(sender: UIButton) { let baseUrl = Globals.ApiConstants.baseUrl let endPoint = Globals.ApiConstants.EndPoints.authorize le

我正在为我的Rest(POST)请求使用,并无缝地获得JSON响应。但我只能访问响应体。我想获取响应标题。使用Alamofire难道不可能吗

以下是我的代码片段:

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

由于响应是
NSHTTPURLResponse
类型,您应该能够获得如下标题:

response.allHeaderFields

以下是如何访问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"]
      // ...
   }
}

此代码在Swift 4.2中获取响应标头

Alamofire.request(pageUrlStr, method: .post, parameters: Parameter, encoding: URLEncoding.httpBody, headers: nil).responseJSON
            { response in
                //to get JSON return value
                if let ALLheader = response.response?.allHeaderFields  {
                    if let header = ALLheader as? [String : Any] {
                        if let cookies = header["Set-Cookie"] as? String {
                            UserDefaults.standard.set(cookies, forKey: "Cookie")
                        }
                    }
                }
}

我没有使用Alamofire的经验,但是在完成闭包中,
response
不是一个
NSHTTPURLResponse
属性吗?如果response是NSHTTPURLResponse类型,那么你不必再强制转换它了……是的,你是对的。当我使用Moya时,我需要演员阵容,因为它以NSURLResponse的形式返回响应。编辑我的答案!太好了,我正在寻找如何使用Moya来完成它,只需要深入你的编辑:)谢谢!