没有得到 Alamofire 的回应

Posted

技术标签:

【中文标题】没有得到 Alamofire 的回应【英文标题】:Not getting response from Alamofire 【发布时间】:2020-02-18 12:08:03 【问题描述】:

使用 Alamofire 进行远程 JSON 响应。 我有一个非常奇怪的问题。在通过电缆连接的设备上运行我的应用程序时工作正常并得到所有响应。但是,当设备通过电缆断开连接时,响应时间增加到 5 分钟到 30 分钟,如果我再次将设备连接到充电或 MacBook,它可以正常工作,但如果未连接,则会卡住。

    func getData()
    
        let baseUrl = URL.init(fileURLWithPath: "")
        let headers:HTTPHeaders = ["Content-Type":"application/json"]
        Alamofire.request(baseUrl, method: .get, parameters: nil, encoding: URLEncoding.default, headers: headers)
        .responseJSON
         response in
            switch(response.result) 
                case .success(_):
                    if response.result.value != nil
                        let jsonData = response.result.value as? Dictionary<String,AnyObject>
                        print(jsonData)
                    
                case .failure(_):
                    print(response.result.error!)
                    break
            
        
    

【问题讨论】:

你能在模拟器上快速得到响应吗..? 你能分享你的api请求吗? ? @dtanwar 在哪里,我看不到任何 api 请求。 @Faiz 它在模拟器上运行良好。 @dtanwar 我需要完整的信息,如基本 url、路径、任何所需的令牌,然后我可以检查。你的代码看起来不错。 【参考方案1】:

您是否正在为会话管理器使用任何其他类?如果是,那么这可能会导致问题。所以删除那个。

【讨论】:

是的,我正在使用下载管理器类,即使用 URLSessionTaskDelegate 和 URLSessionDownloadDelegate。试过了,它对我有用。谢谢【参考方案2】:

你能分享你的 api 请求吗?

添加传输安全性的一种可能解决方案:

将此代码添加到 info.plist 中的根标记内

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

【讨论】:

这看起来不像是一个答案。您可以对问题发表评论以获取更多信息。 @Soroush 我已经评论过,这可能是可能的答案。顺便说一句,你为什么担心它?这不是你的问题 关闭 ATS 通常是个坏主意,建议在没有具体问题的情况下推荐它不是一个好主意。

以上是关于没有得到 Alamofire 的回应的主要内容,如果未能解决你的问题,请参考以下文章

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

请求 Alamofire

AlamoFire 图像内存问题

发送 Alamofire JSON 数组 Swift

Alamofire RequestAdapter - 修改 URL

Alamofire 从多个请求中取消一个请求