Как получить доступ к ответным данным в уведомлении didCompleteTaskNotification Alamofire 5? - PullRequest
0 голосов
/ 29 февраля 2020

Я только что закончил обновление с Alamofire 4 до 5. Все прошло хорошо, за исключением регистрации ответов для отладки. В Alamofire 4 у вас был доступ к данным ответов.

NotificationCenter.default.addObserver(forName: NSNotification.Name.Task.DidComplete, object: nil, queue: OperationQueue.main) { notification in
    if let responseData = notification.userInfo?[Notification.Key.ResponseData] as? Data {
        if responseData.count > 0 {
            let body = String(decoding: responseData, as: UTF8.self)
            print("Response Body: \(body)")
        }
    }
}

В Almaofire 5 у вас нет доступа к данным ответов. Единственное, что есть в userInfo, - это Alamofire.Request, доступ к которому осуществляется по уведомлению.request.

NotificationCenter.default.addObserver(forName: Request.didCompleteTaskNotification, object: nil, queue: OperationQueue.main) { notification in
    // no response data here
}

Кто-нибудь знает, как получить доступ к данным ответов?

1 Ответ

1 голос
/ 01 марта 2020

Вы можете получить Data из Request, связанного с уведомлением.

guard let request = notification.request as? DataRequest else { return }

// Do something with request.data

Однако я бы предложил перейти на наш протокол EventMonitor для ведения журнала, поскольку он дает вам доступ намного больше событий. Вы можете прочитать больше в нашей документации .

...