iOS 共享扩展中的 API 请求立即失败
Posted
技术标签:
【中文标题】iOS 共享扩展中的 API 请求立即失败【英文标题】:API Request Fails immediately in iOS share extension 【发布时间】:2018-09-02 06:59:04 【问题描述】:您好,我正在使用共享扩展通过 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】:经过大量搜索和测试并失败,终于,this solution 为我工作!
这是我在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 实例并返回它
【讨论】:
以上是关于iOS 共享扩展中的 API 请求立即失败的主要内容,如果未能解决你的问题,请参考以下文章
跨域资源共享的问题:预检请求后 OSX Safari 和 iOS Safari 均失败