Alamofire 库没有响应 Swift 包管理器

Posted

技术标签:

【中文标题】Alamofire 库没有响应 Swift 包管理器【英文标题】:Alamofire library not responding with Swift Package Manager 【发布时间】:2017-03-27 14:33:35 【问题描述】:

我是 Swift 包管理器的新手,我正在创建一个可执行文件,我需要在其中处理 REST API,因为我正在使用 Alamofire,这就是我将它添加到我的包文件中的方式

  let package = Package(
name: "CreateMenuTool",
dependencies: [
    .Package(url: "https://github.com/Alamofire/Alamofire.git", majorVersion: 4)
])

现在,当我创建请求时,我没有收到任何响应。但是,当我在 XCode 项目中使用此方法时,它会响应我。

Alamofire.request(urlString, method: .post, parameters: requestParams,  encoding: JSONEncoding.default, headers: ["X-Key" : webKey]).responseJSON  response in 
   print(response)

当我调试它时,我发现它永远不会进入方法内部,这意味着我既没有得到任何错误,也没有得到任何响应。请让我知道我哪里做错了?

【问题讨论】:

我正在处理同样的问题。你找到答案了吗? 【参考方案1】:

Alamofire 使用异步请求。如果您不创建 RunLoop,您的代码将在响应从服务器到达之前很久就退出。在脚本结束之前,添加以下行:

RunLoop.main.run()

这将启动主 RunLoop。您还可以将参数传递给 run 以使其运行指定的时间:

RunLoop.main.run(until: Date(timeIntervalSinceNow: 10))

【讨论】:

以上是关于Alamofire 库没有响应 Swift 包管理器的主要内容,如果未能解决你的问题,请参考以下文章

swift中第三方网络请求库Alamofire的安装与使用

使用 Swift 3 和 Alamofire 4 后没有得到响应

无法从 Alamofire 的 Swift 3 中的 Web 服务的 PATCH API 调用中获得响应

支持 swift 3.0 和 iOS 8.0+ 的等效 Alamofire 库

Alamofire 响应对象映射

如何在 swift5 和 Alamofire 5 beta 版本中获取和保存响应?