API iOS 共享扩展中的请求立即失败
API Request Fails immediately in iOS share extension
您好,我正在使用共享扩展 post 一些数据到我的服务器,使用 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 共享扩展中发送请求的例子吗?
经过大量的搜索和测试并失败,终于,this solution 对我有用!
这是我在 didSelectPost()
中的代码
let body: 参数 = [
"version": 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 实例,returns 它
您好,我正在使用共享扩展 post 一些数据到我的服务器,使用 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 共享扩展中发送请求的例子吗?
经过大量的搜索和测试并失败,终于,this solution 对我有用!
这是我在 didSelectPost()
let body: 参数 = [ "version": 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 实例,returns 它