小编Eti*_*ule的帖子

如何使用Alamofire执行顺序请求并在Swift 3的每一步更新progressHUD

好的,我对这一个感到疯狂......

我正在使用Alamofire 4.x(Swift 3和XCode 8.1).我需要从需要身份验证的站点获取和解析几个html请求(不幸的是没有json API).然后用Fuzi解析HTML,这个进展可能需要一些时间,所以我打算使用ProgressHUD(准确地说PKHUD)让用户知道发生了什么.我还需要获取一些不在身份验证后面的html.

我创建了一个结构和函数来处理整个网络进程并解析数据.

我设法执行请求并获取我需要的数据,但我似乎无法弄清楚如何在正确的时间进行HUD更新.

到目前为止,这是我的代码:

import Alamofire
import Fuzi
import PKHUD

struct MyMSCProvider {

static let baseUrl = "http://mastersswimming.ca"

//I tried with or without a custom queue - same result
static let processingQueue = DispatchQueue(label: "com.colddiver.processing-queue", qos: .utility)

static func fetchData(data: MscRequest) {

    if data.profile || data.log {

        //Authenticate first!
        HUD.show(.labeledProgress(title: "Authenticating", subtitle: ""))

        let requestUrl = "\(baseUrl)/MyMscPage.jsp"
        let parameters = ["locale": "en", "username": data.user.username, "password": data.user.password]

        Alamofire.request(requestUrl, method: .post, parameters: parameters).responseData(
            queue: processingQueue,
            completionHandler:
            { …
Run Code Online (Sandbox Code Playgroud)

grand-central-dispatch alamofire swift3 xcode8.1

0
推荐指数
1
解决办法
1587
查看次数