I think you may be over thinking this.

I have the same situation as you - a local PHP server and a remote Web Service.

I tried for a long time to get it working by proxying through PHP like what you 
are trying. I could never get it to work.

Instead, I created a SOAP Client in PHP that could talk to the Web Service. 
Once this was working I used WebORB to create a service to talk to Flex. Then I 
merged the code. Now I have Flex sending and receiving objects via WebORB and 
PHP exchanging data via SOAP. The best of both worlds.


HTH




Steve

--- In flexcoders@yahoogroups.com, "Joshua" <w...@...> wrote:
>
> 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