swift - Alamofire 未得到完整回复

标签 swift alamofire

我正在尝试在 Swift 中使用 Alamofire 从 GET 请求中获取数据。存在一个问题,即它没有从请求中获得完整的响应。响应是一个包含嵌套数组的数组,其中一些 String 和一些 [String:Any]。我没有使用 Alamofire 引入任何 [String:Any] ,并认为这是一个严重的错误。 Postman 显示嵌套数组值,但不显示 Alamofire。

请求

Alamofire.request(request.getFullUrl(param: paramsForUrl), method: request.getMethodType(), parameters: data, encoding: request.getEncoding(), headers: headers).validate(statusCode: 200..<500).responseJSON { response in }

典型的响应应该是什么样子

{
  "uuid": "787FDS8-FS7FS7DG9-FSD789FCS98",
  "name": "Show time",
  "views_count": 0,
  "comments_count": 0,
  ...
  "events": [
    {
      "uuid": "f69a358e-9a1e-427c-a158-95dfc8c54ed7",
      "name": "Test",
     ...
    },
    {
      "uuid": "8993b639-f6c9-4d20-b8a9-c43c73a9828b",
      "name": "Test 2",
      ...
    },
   ...
  ]
  "times: [
   {
   "name: "test time 1",
   "clock: "Face"
   },
   {
   "name": "test time 2",
   "clock: "Back"
   }

 ]
}

缺少什么

嵌套数组内的任何内容:事件、时间。如果我有一个简单的 String 数组,那么 Alamofire 就会得到这些。它不显示任何嵌套的内容,这是通过打印 response.result.value 和 JSON 解码响应并直接访问 events 实现的。它看不到事件时间

感谢您的帮助。

最佳答案

可能是您的 JSON 无效。要检查是否尝试将 responseJSON 更改为 responseString 并查看它是否打印所有数据,例如

Alamofire.request(url ,method: .get ,parameters: data).validate().responseString{ response in
    switch response.result{
        case .success:
            let s = response.result.value ?? "nil"
            print("API Response: \(s)")
        case .failure:
            debugPrint(response)
    }
}

如果上面打印了服务器上的所有数据,那么您需要修复服务

关于swift - Alamofire 未得到完整回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372373/

相关文章:

swift - cURL 与 Alamofire - Swift - 多部分/表单数据

ios - 如何使用 Alamofire 5 将图像作为多部分数据上传到 aws 预签名 url?

ssl - Alamofire 4.0.1 SSL 请求失败(无法与服务器建立安全连接)

ios - 尝试使用 Alamofire 检查 iOS 设备上的互联网连接

c - 如何在 swift 3 中使用我的静态库 (.a)

ios - 后台执行,将记录写入核心数据

ios - GKMinmaxStrategist 在返回最佳移动后修改模型

ios - Alamofire 帖子请求 :

arrays - 如何从数组中找到最远的3个连续元素

ios - 现在如何在 RealmSwift 4.0 更新中使用枚举?