使用 Alamofire 进行 GET 请求调用后没有响应

Posted

技术标签:

【中文标题】使用 Alamofire 进行 GET 请求调用后没有响应【英文标题】:Getting no response after GET request call using Alamofire 【发布时间】:2017-02-26 08:35:45 【问题描述】:

我正在编写一个简单的应用程序来从服务器获取数据,并且我已经使用 Swift3 使用 Alamofire 实现了 GET 请求。 我的 Alamofire GET 请求调用如下,

    func networkRequest(completed: @escaping DownloadComplete) 
    Alamofire.request("https://api.waqi.info/feed/shanghai/?token=demo").responseJSON  response in
        let result = response.result
        print(response.description)

        if let dict = result.value as? Dictionary<String, AnyObject> 
            if let status = dict["status"] as? String 
                self._status = status
                print(self._status)
            
       completed()
         
       

我在数据模型文件下使用了如下类型别名,

    typealias DownloadComplete = () -> ()

当我运行它时,我在 Xcode 8 的控制台中没有得到任何输出,它仍然是空白的。我无法弄清楚我的代码有什么问题。

【问题讨论】:

我已经运行了代码,一切正常,控制台输出正确。尝试清理项目。 我确实这样做了,但在这种特殊情况下,它根本不起作用。我什至重新安装了 pod,我在模拟器和手机上都卸载了该应用程序..再次安装。 Xcode 控制台只是保持空白。我连接的 UI 标签也保持空白。 您是在应用程序还是命令行脚本中执行此操作?如果是命令行,可能需要调用 dispatchMain() 来开始 libdispatch 运行循环。否则,您的程序将在请求完成之前退出。 是的,这是一个范围界定问题。 【参考方案1】:

问题在于右括号。由于范围错误,它没有被调用。现在解决了。

【讨论】:

以上是关于使用 Alamofire 进行 GET 请求调用后没有响应的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire - 带有自定义标头的 Rest API 调用

Swift 3.0 迁移后的 Alamofire 错误:“调用中的额外参数”(请求方法)

使用 SwiftyJSON 对 Alamofire GET 参数进行 URL 编码

在 Alamofire 函数调用中更改属性值

在 Alamofire 中使用之前对 URL 进行编码

保存并重新发送 Alamofire 请求