1

im new at swift and im trying to get response from a soap services, but the dataTask in my session never get in, always skip it. I already test te urls and the soap message but i don't have any lucky. Here is my code

func servisRun(){

    let soapMessage = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\"><soapenv:Header/><soapenv:Body><tem:LogIn><tem:user>00002403</tem:user><tem:password>123456</tem:password></tem:LogIn></soapenv:Body></soapenv:Envelope>"
    let msgLength = String(describing: soapMessage.characters.count)
    let url = URL(string: "http://192.168.1.171/WcfSif.Services.Login.Login.svc")
    var request = URLRequest(url: url!)
    request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
    request.addValue(msgLength, forHTTPHeaderField: "Content-Length")
    request.httpMethod = "POST"
    request.httpBody = soapMessage.data(using: String.Encoding.utf8, allowLossyConversion: false)
    URLSession.shared.dataTask(with: request) { (data, resp, error) in

        guard error == nil && data != nil else{

            print("connection error or data is nill")

            return
        }

        if resp != nil {

            self.mutableData?.length = 0;

        }

        let mutableData : Void = NSMutableData.initialize()
        print(mutableData)

        let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
        self.mutableData?.append(data!)
        print(dataString!)



    }
    .resume()
    let nsData = mutableData?.copy() as! NSData
    let xmlParser = XMLParser(data: nsData as Data)
    xmlParser.delegate = self
    xmlParser.parse()
    xmlParser.shouldResolveExternalEntities = true

}

0 Answers0