首页 > 解决方案 > iOS 共享扩展中的 API 请求立即失败

问题描述

嗨,我正在使用共享扩展程序使用 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 共享中发送请求的例子吗扩大?

标签: iosswiftnetworkingalamofireshare-extension

解决方案


经过大量的搜索和测试并失败了,最后,这个解决方案对我有用!

这是我的代码didSelectPost()

让正文:参数= [“版本”:Configs.currentReleaseVersion,“内容”: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 实例并返回它


推荐阅读