Запрос API не работает сразу в расширении для iOS - PullRequest
0 голосов
/ 02 сентября 2018

Привет! Я использую расширение общего ресурса, чтобы публиковать некоторые данные на своем сервере с помощью API-запроса (Alamofire), проблема в том, что запрос немедленно завершается неудачно, и я не знаю, как заставить его работать, я читал некоторые статьи что я должен использовать URLSession для отправки запроса в фоновом режиме, но я не смог найти пример того, как заставить его работать с alamofire, вот мой код в расширении общего доступа ViewController:

override func didSelectPost() {

    MessageHTTPHelper.submitMessage(contains: contentText, completion: { (response) in
        self.showAlert(title: "Result", message: response.result.isSuccess ? "SUCCESS" : "FAILURE")
    })

}

MessageHTTPHelper.submitMessage - это определенная мной вспомогательная функция, которая отлично работает в основном приложении. Мне наплевать на ответ, я просто хочу отправить запрос без каких-либо обратных вызовов. Не могли бы вы привести пример отправки запроса на расширение общего доступа iOS?

1 Ответ

0 голосов
/ 04 сентября 2018

После многих поисков, тестов и сбоев, наконец, это решение сработало для меня!

и вот мой код в didSelectPost()

let body: Параметры = [ "версия": Configs.currentReleaseVersion, "content": cleanTextContent ]

let request = HTTPHelper.makeHTTPRequest(route: "message",
                           headers: HTTPHelper.defaultAuthHTTPHeaders,
                           verb: .post,
                           body: body,
                           apiV1Included: true)
let queue = DispatchQueue(label: "com.example.background", qos: .background, attributes: .concurrent)

request.responseJSON(queue: queue, options: .allowFragments) { (response) in
    if response.result.isFailure {
        guard let message = response.error?.localizedDescription else {
            self.dismiss()
            return
        }
        self.showAlert(title: "Error", message: message)
    }
}

HTTPHepler.makeHTTPRequest - это просто вспомогательный метод, который создает экземпляр Alamofire DataRequest с заданными параметрами и возвращает его

...