我正在尝试在 Swift 4 中使用 URlSession 调用 https 请求。我没有收到错误消息,但收到了 nil 响应。
我尝试在 plist 中添加 ATS。添加了 TLS 版本、NSIncludesSubdomains key 等。仍然不起作用。不确定可能是什么问题。有什么帮助吗?
下面是我的代码:
url = URL(string: "https://quickweb.support.qvalent.com/OnlinePaymentServlet3")
let urlRequest = URLRequest(url: url!, method: method, body: data.toEncodedData(), cachePolicy: .useProtocolCachePolicy)
let useMainThread = true
let configuration = URLSessionConfiguration.default
var queue: OperationQueue? = nil
if useMainThread {
queue = OperationQueue.main
}
let urlSession = URLSession(configuration: configuration, delegate: self, delegateQueue: queue)
urlSession.dataTask(with: urlRequest){ data, resonse, error in
if let error = error {
self.errorMessage += Constants.shared.dataErrorMsg+error.localizedDescription
onComplete(false,nil,self.errorMessage)
}else if let data = data{
self.parse(data: data, with: onComplete)
}
}.resume()
令人惊讶的是,几年前我在 Objective C 中完成了同样的调用,效果非常好。尝试在 Xcode 9.3 中将其转换为 swift 4 失败。
当我打印响应数据时,它显示“404 page not found”
Best Answer-推荐答案 strong>
已解决。这与请求或 url 无关。客户端期待一个已就位但未被调用的委托(delegate)调用,因此它返回 404。URLSessionTaskDelegate 是关键。
关于ios - URLSession 数据任务返回零响应 - 找不到 404 页面,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/50259931/
|