Ios base64字符串的Alamofire响应

Ios base64字符串的Alamofire响应,ios,iphone,alamofire,nsurlsession,alamofireimage,Ios,Iphone,Alamofire,Nsurlsession,Alamofireimage,我正在使用Alamofire进行联网请求。除了一个问题外,它工作正常 manager!.request(mutableURLRequest).responseJSON { (response) in switch response.result { case .Success: if let value = response.result.value { print("JSON: \(value)") //**prob

我正在使用Alamofire进行联网请求。除了一个问题外,它工作正常

manager!.request(mutableURLRequest).responseJSON { (response) in
  switch response.result {
        case .Success:
            if let value = response.result.value {
                 print("JSON: \(value)") //**problem**
             }
        case .Failure(let error):
            print(error)
         }

}
服务器响应格式为:

"result" : [
    {
      "rec_name" : "1.jpg",
      "data": {
                "base64": "/9j/4AAQSkZ",
                "__class__": "bytes"
              },
      "id" : 9,
      "name" : "1.jpg"
    },
    {
      "rec_name" : "2.jpg",
      "data": {
                "base64": "/9j/4AAQSkZ",
                "__class__": "bytes"
              },
      "id" : 10,
      "name" : "2.jpg"
    }
  ],
  "id" : 0
}
但我得到如下结果:数据(base64字符串)为空

"result" : [
    {
      "rec_name" : "1.jpg",
      "data" : null,
      "id" : 9,
      "name" : "1.jpg"
    },
    {
      "rec_name" : "2.jpg",
      "data" : null,
      "id" : 10,
      "name" : "2.jpg"
    }
  ],
  "id" : 0
}
我是否错过了base64字符串的某些内容? 我认为它在一个月前就可以工作了,但现在我遇到了问题

如果我通过邮递员提出同样的要求,那么效果很好

谢谢你,我可以给你图书馆的建议。该库允许您轻松地在Swift中解析JSON。此外,还有一个将Alamofire和SwiftyJSON结合在一起的扩展。以下是您的请求的示例:

if let urlToTest = URL.init(string: "your_URL") {

    Alamofire.request(urlToTest,
                      method: .get,
                      parameters: nil,
                      encoding: JSONEncoding.default,
                      headers: nil)
    .responseSwiftyJSON(completionHandler: { (response:DataResponse<JSON>) in

        let jsonResult = response.result
        if let jsonResultValue = jsonResult.value {

            if let resultArray = jsonResultValue["result"].array {

                if resultArray.count > 0 {

                    if let itemData = resultArray[0]["data"].dictionary {

                        if let itemDataBase64 = itemData["base64"]?.string {

                            print("Base 64 field value \(itemDataBase64)")
                        }
                    }
                }
            }
        }
    })
}
如果让urlToTest=URL.init(字符串:“您的URL”){
Alamofire.请求(urlToTest,
方法:。获取,
参数:无,
编码:JSONEncoding.default,
标题:无)
.responseSwiftyJSON(completionHandler:{(response:DataResponse)在
让jsonResult=response.result
如果让jsonResultValue=jsonResult.value{
如果让resultArray=jsonResultValue[“result”].array{
如果resultaray.count>0{
如果let itemData=resultArray[0][“data”].字典{
如果让itemDataBase64=itemData[“base64”]?.string{
打印(“基本64字段值\(itemDataBase64)”)
}
}
}
}
}
})
}

确保不是您的服务器端更改!!因为如果它以前像你说的那样工作的话!将请求发布到服务器时,请检查是否已成功发布该请求。如果成功发布,则是服务器问题。@Lion,我通过邮递员提出了相同的请求,然后就可以了@nirav您是如何获得此输出的?可能您使用了错误的日志格式。或者你是如何检查“数据”是否为空的?@RomanPodymov,我正在使用
print(response.result.value)