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