ios - otra - "Stream está enviando un evento antes de abrirlo"
como compartir calendario iphone con otra persona (2)
Estoy tratando de hacer una solicitud SOAP con Swift. Ejecutando el último Xcode / iOS a partir del 9/9/14. Uso una NSMutableURLRequest
que agrego un HTTPBody con la información de solicitud. Sin embargo, una vez que inicio un NSURLConnection
con la solicitud, NSURLConnection
un error "Stream xxxxxxxxx envía un evento antes de abrirlo". No estoy usando ninguna biblioteca de redes, solo una simple NSURLConnection
. ¿Alguna idea de lo que podría causar este error? ¡Gracias!
Código relevante en uso:
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)
}
Busqué en todas partes este problema y finalmente estaba pasando las credenciales incorrectas en didReceiveAuthenticationChallenge :(
Verifica si accidentalmente haces lo mismo también
Si eso no funciona, intente esto:
Incruste sus credenciales en la cadena url
NSString *urlString = @"http://username:[email protected]/home";
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
El problema con Stream not Open parece ser directamente la implementación de i CFNetwork. (reproducible cuando se usa NSConnection y también NSSession). Se produce para solicitudes (respuestas) que deben fragmentarse. Un efecto secundario de este problema es que la autenticación de Windows no funciona correctamente y cada solicitud debe pasar por un proceso completo de toma de contacto. Y no está fijado también en iOS 8.1.