Saya perlu merekam beberapa data/info ketika Alamofire memanggil resume untuk memulai permintaan. (Saya menggunakan Swift dalam proyek saya)

Apakah ada tanpa do method_swizzling?

Timelinenya akan seperti ini:

Call a request (put in request queue or execute right away) -> [custom method] -> SessionTask.resume()

Saya tahu Moya melakukan hal serupa yang disebut WillSend. Tapi saya ingin tahu bagaimana melakukannya tanpa menggunakan Moya.

Terima kasih.

-1
Paul.Chou 3 Juli 2020, 06:45

1 menjawab

Jawaban Terbaik

Jika yang perlu Anda lakukan hanyalah memeriksa berbagai elemen permintaan, Anda dapat menggunakan protokol EventMonitor Alamofire 5, yang dipanggil selama berbagai peristiwa seumur hidup saat Alamofire membuat permintaan. Ada ClosureEventMonitor bawaan yang memungkinkan Anda mengatur penutupan untuk acara tersebut. Sebagai contoh:

let monitor = ClosureEventMonitor()
monitor.requestDidCompleteTaskWithError = { (request, task, error) in
    debugPrint(request)
}
let session = Session(eventMonitors: [monitor])

Silakan lihat dokumentasi kami untuk ClosureEventMonitor dan EventMonitor protokol itu sendiri.

0
Jon Shier 6 Juli 2020, 15:12