1 Reply Latest reply on Oct 24, 2006 3:46 PM by reFlexive

    SOAP XML corruption with SSL

      When we start Flex from an SSL url (and send messages to a web server with SSL on), one of our SOAP messages gets corrupted. It only happens with one particular call, and there is another call which produces almost-identical XML that doesn't encounter the problem.

      Using ethereal, we see that the SOAP message looks as follows (I've removed some parts inside the XML that are well-formed, I've also modified the IP address). Note that the last n characters from the XML string have been pasted over the start of the SOAP XML!

      If we turn SSL off in the web server (and access the Flex app using http), it works with no problem.

      Have you seen anything like this or know what might be causing this corruption?


      POST /PDisp HTTP/1.1
      Accept: */*
      x-flash-version: 9,0,16,0
      Content-Type: text/xml; charset=utf-8
      SOAPAction: ""
      Accept-Encoding: gzip, deflate

      User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
      Cache-Control: no-cache
      Cookie: LoginSessionID=bc65dbdda75f854ab58c242982d393f6
      Max-Forwards: 10
      X-Forwarded-Server: test1.bar.com
      Content-Length: 8294

      </validateTemplate></SOAP-ENV:Body></SOAP-ENV:Envelope> xmlns:SOAP-ENV=" http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><validateTemplate>
      <callType />
        • 1. SOAP XML corruption with SSL
          reFlexive Level 1
          There appears to be a bug where the XML is corrupted if the file size is too big and SSL is turned on. This happened for XML somewhere in the range of 8K-9K. To fix the problem, I tried removing single tags (tried several different ones), and that was enough to get it to work where there was no corruption. In the end, I re-named my tags with shorter names and was able to make this work.

          Definitely a work-around and we need to find a "real" way to solve this.

          Has anyone run into this?