Status codes higher than 300 are not provided to Flash Player by the browser. It is an artifact of the inconsistencies within the plug-in API on certain browsers. The decision was made by the Flash Player team to keep the runtime behavior of the player consistent so there is no data provided when a 400, 404, 500 error occurs. This is why the proxy was created in the first place. The proxy changes the header error codes and returns them to the Flash Player in a suitable manner.
Since Adobe could not force the browser manufacturers to change to return 300 or higher errors, we created a proxy to allow Web Services to work seamlessly. You can write your own Web Services Proxy and modify the results returned. Although if you go this route, you might as well use remoting to return an object to the player. The SOAP Web Services parser is very slow client side because of the nature of the work that it is doing. The performance decays exponentially with larger SOAP result objects and there are many encoding types that are not supported. Here are some sample stacks: FlexApp <AMF> Server <WSSOAP> Server --> 100% compatible, AMF exchange about 10X faster client to server. FlexApp <WSSOAP> Server --> 500 error issues If only Flash Player got 300 or higher status codes consistently from the various browsers. I wish it was a switch we could change but it isn't. Many point to this as Adobe pushing an expensive server but the reality is that we were trying to solve a problem and enable SOAP WS compatibility with the Proxy. We need a better solution in the WS-SOAP compatibility. Ted Patrick Flex Technical Evangelist Adobe Systems http://www.onflex.org <http://www.onflex.org> http://www.linkedin.com/in/tedpatrick <http://www.linkedin.com/in/tedpatrick> ________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Greg McCreath Sent: Sunday, January 28, 2007 5:31 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Do I *REALLY* need Flex Data Services for WebServices? Hi All, The manual says: Note: "You must use the Flex proxy, which is part of Flex Data Services, to ensure that HTTP status codes are returned correctly from HTTP services and web services. On web browsers, when a service returns any status code other than 200, Adobe Flash Player cannot read the body of the response. If the status code is 500 and the body contains a fault, there is no way to get to the fault. The proxy works around this issue by forcing the status code for faults to 200; the player passes the body of the response along with the fault intact." At US $6000 a pop per CPU (departmental license only - $20,000 per CPU for enterprise license) across multiple high-availability data centers you'd be looking down the barrel at more than US $50,000 ** to run a web service proxy ** on a number of good machines. So, does this effectively render Flex RPC services un-useable unless you use Flex Data Services? .. unless you make the assumption that everything always works ... .. what happens when a non-200 status code is encountered? ... or have I got it wrong ... ?? Greg. ________________________________ This email and any files transmitted with it may be confidential and are intended solely for the use of the individual or entity to whom they are addressed. This email may contain personal information of individuals, and be subject to Commonwealth and/or State privacy laws in Australia. This email is also subject to copyright. If you are not the intended recipient, you must not read, print, store, copy, forward or use this email for any reason, in accordance with privacy and copyright laws. If you have received this email in error, please notify the sender by return email, and delete this email from your inbox.