我正在尝试使用Swift 4中的URlSession
调用https请求。我没有收到错误,但收到了无响应。
我试过在plist中添加ATS。添加了TLS版本,NSIncludesSubdomains键等。仍然无法正常工作。不确定可能是什么问题。有什么帮助吗?
以下是我的代码:
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页”
答案 0 :(得分:0)
这已经解决了。这与请求或网址无关。客户端期待一个代理调用已经到位但没有被调用,因此它返回404. URLSessionTaskDelegate是关键。