Swift:如何对服务进行 API 调用但不等待响应

Posted

技术标签:

【中文标题】Swift:如何对服务进行 API 调用但不等待响应【英文标题】:Swift: How can I make an API call to a service but not wait for response 【发布时间】:2020-08-14 07:04:29 【问题描述】:

我有一个带有列表通知的 collectionviewcontroller。每次单击通知时,我都会将用户发送到相应的控制器。我想做的是,一旦点击了一行,我就想做一个 API 调用,而不是等待响应。此 API 调用只是将此行标记为已读,因此我不需要等待来自服务器的响应,也不希望用户等待。我正在使用 okhttp 进行 API 调用。这可能吗?

【问题讨论】:

【参考方案1】:

OKHttp 是为 android 设计的,ios 平台上没有 OKHttp。 您可以使用 OKHttp 等效库Alamofire。 Alamofire的请求代码是这样的。

AF.request("https://httpbin.org/get").response  response in
    debugPrint(response)

默认情况下,代码在非UI线程中运行,不会影响用户交互。

【讨论】:

【参考方案2】:

在后台队列中使您的代码请求异步

      DispatchQueue.global(qos: .background).async 
        print("This is run on the background queue")
        yourApiMethod() 

【讨论】:

以上是关于Swift:如何对服务进行 API 调用但不等待响应的主要内容,如果未能解决你的问题,请参考以下文章

Blazor - 在 API 调用时显示等待或微调器

如何在swift 5中的完成块内向用户显示警报

在执行代码之前等待 Swift 动画完成

Swift:试图获取坐标,但不知道如何调用 locationManager() 函数

使用 swift 进行 API 身份验证

如何并行进行多个 Spring Webclient 调用并等待结果?