Дебаг для Alamofire запросов

3 minute read

Alamofire - библиотека, для работы с HTTP написанная на свифте. Она упрощает жизнь разработчикам в разы.

Когда пишешь сетевой код, часто возникает вопрос как его подебажить, посмотреть параметры, заголовки и тд. С Alamofire это просто.

Если у вас в проекте используется версия < 5, то вам нужно написать немного кода. Добавим вспомогательный метод к классу Request в отдельном файле Request+Debug.swift

 1import Foundation
 2import Alamofire
 3
 4extension Request{
 5    public func debug() -> Self {
 6        #if DEBUG
 7        debugPrint(self)
 8        #endif
 9        return self
10    }
11}

B при запросе воспользуемся им.

Alamofire.request(url).debug()
    .responseJSON( completionHandler: { response in
        debugPrint(response)
    })

И в консоле буде ваш запрос в виде cURL.

$ curl -v \
	-b "__cfduid=dd963d192e96b1eb5a7eca3f0af0ba8051589034780" \
	-H "Accept-Encoding: gzip;q=1.0, compress;q=0.5" \
	-H "Accept-Language: en;q=1.0, ru-RU;q=0.9" \
	-H "User-Agent: AlamofireMagic/1.0 (ru.4gophers.AlamofireMagic; build:1; iOS 13.4.1) Alamofire/4.9.1" \
	"https://jsonplaceholder.typicode.com/posts/1"

На самом деле, все еще проще. С версии 5 в библиотеке уже есть встроенный обработчик. Достаточно написать так:

1AF.request("https://jsonplaceholder.typicode.com/posts/1")
2        .cURLDescription { description in
3            print(description)
4        }
5        .responseJSON( completionHandler: { response in
6            debugPrint(response)
7        })

И результат будет точно таким же

Ссылки