Я пытаюсь сделать запрос SOAP с помощью Swift. Запуск последней версии Xcode/iOS с 9/9/14. Я использую NSMutableURLRequest
, с которым я добавляю HTTPBody с информацией о запросе. Однако, как только я начинаю с NSURLConnection
с запросом, я получаю сообщение об ошибке "Stream xxxxxxxxx отправляет событие перед открытием". Я не использую какие-либо сетевые библиотеки, просто старое NSURLConnection
. Любые мысли о том, что может вызвать эту ошибку? Спасибо!
Используемый код:
func createSOAPRequestWithEnvelope(soapEnvelope : String) {
//create request
var url = NSURL(string: "https://my-service-url")
var req = NSMutableURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 5000)
req.addValue("text/xml", forHTTPHeaderField: "Content-Type")
req.HTTPMethod = "POST"
req.HTTPBody = soapEnvelope.dataUsingEncoding(NSUTF8StringEncoding)
//begin connection
var connection = NSURLConnection(request: req, delegate: self, startImmediately: false)
connection.scheduleInRunLoop(NSRunLoop.mainRunLoop(), forMode: NSDefaultRunLoopMode)
connection.start() //error happens after this command :(
}
//takes care of NTLM Authentication
func connection(connection: NSURLConnection!, didReceiveAuthenticationChallenge challenge: NSURLAuthenticationChallenge!) {
var authMethod = challenge.protectionSpace.authenticationMethod
if authMethod == NSURLAuthenticationMethodNTLM {
var credential = NSURLCredential(user: self.username,
password: self.password,
persistence: NSURLCredentialPersistence.ForSession)
challenge.sender.useCredential(credential, forAuthenticationChallenge: challenge)
}
}
func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
// Response received, clear out data
self.transactionData = NSMutableData()
}
func connection(connection: NSURLConnection!, didReceiveData data: NSData!) {
// Store received data
self.transactionData?.appendData(data)
}