I have a problem with soap and flex 3.  I have created a webservice through the 
import webservice menu in Flex Builder.  If I use the service as is I get a 
security error because the crossdomain policy on the remote server doesn't 
comply.  So, instead I am using a php proxy to relay the webservice through my 
server and out to the webservice back to the server back to Flex.  When I try 
to do this I get a SOAP mismatch error coming from the below code.

else if (envNS.uri != SOAPConstants.SOAP_ENVELOPE_URI)
        {
            throw new Error("SOAP Response Version Mismatch");
        }

I went back in and checked the value of envNS.uri and 
SOAPConstants.SOAP_ENVELOPE_URI in both the previously described situations 
(php proxy and straight security riddled call).  In the security riddled call 
the two variables match.  In the proxy call I get back differing values of 
envNS.uri and SOAPConstants.SOAP_ENVELOPE_URI.

Can somebody tell me why the variables are not matching when put through the 
php proxy.  The php is simple, just curl, so I've pasted it below.  

///////START PHP SNIPPET

$url = $_GET['url'];
$headers = $_GET['headers'];
$mimeType = $_GET['mimeType'];

//Start the Curl session
$session = curl_init();

// Don't return HTTP headers. Do return the contents of the call
curl_setopt($session, CURLOPT_URL, $url);
curl_setopt($session, CURLOPT_HEADER, ($headers == "true") ? true : false);
curl_setopt($session, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($session, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($session, CURLOPT_RETURNTRANSFER, 1);

// Make the call
$response = curl_exec($session);

if ($mimeType != "")
        {
        // The web service returns XML. Set the Content-Type appropriately
        header("Content-Type: ".$mimeType);
}

echo $response;

curl_close($session);

//END PHP SNIPPET

Any help would be great.  Thanks,

Josh

Reply via email to