在操场上使用 Alamofire 发出 http 请求的延迟
Posted
技术标签:
【中文标题】在操场上使用 Alamofire 发出 http 请求的延迟【英文标题】:Delay in making http requests using Alamofire in playground 【发布时间】:2015-11-05 03:05:14 【问题描述】:我遇到了一个奇怪的问题,我的 Playground 中的 Alamofire.request(.GET) 语句在 Playground 中延迟一段时间后被执行
设置:我按照以下link 导入 Alamofire 框架以在 xcode 游乐场测试网络请求。
这是我在操场上的代码。当我查看我的网络服务器的日志时,日志会在几乎几分钟的延迟后更新。我已经验证不是导致延迟的日志过程。使用 curl 和浏览器发出相同的 http 请求,我看到日志几乎立即更新。
import UIKit
import Alamofire
Alamofire.request(.GET, "http://localhost:5010/asdf")
.responseJSON response in
print ("Hello there in playground")
print(response.request) // original URL request
print(response.response) // URL response
print(response.data) // server data
print(response.result) // result of response serialization
if let JSON = response.result.value
print("JSON: \(JSON)")
【问题讨论】:
【参考方案1】:网络请求等延时事件的 Playground 行为……充其量是不可预测的。
尝试让 Playground 知道它应该等待您的网络请求:
import UIKit
import Alamofire
import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
Alamofire.request(.GET, "http://localhost:5010/asdf")
.responseJSON response in
print ("Hello there in playground")
print(response.request) // original URL request
print(response.response) // URL response
print(response.data) // server data
print(response.result) // result of response serialization
if let JSON = response.result.value
print("JSON: \(JSON)")
XCPlaygroundPage.currentPage.finishExecution()
【讨论】:
以上是关于在操场上使用 Alamofire 发出 http 请求的延迟的主要内容,如果未能解决你的问题,请参考以下文章
使用 AlamoFire 发出 HTTP 请求会导致 EXC_BAD_ACCESS
如何在 Alamofire 请求 swift 3 上发出警报