I’ve found myself enjoying working with Adobe Flex. Flex does a lot of things really well, except its support of the HTTP protocol. Here’s a few things folks don’t know about the Flash Players HTTP support:
- It only support GET and POST methods. In order to use other methods such as DELETE and PUT, you have to the proxy service in Live Cycle Data Services. Lame!
- The Flash Player can’t read entity responses if a service returns a response code higher than 200. The LDS proxy gets around this limitation by forcing the response to a 200 status and returning the fault entity. Without LDS, there’s no way to get the response entity. Still lame.
- You are extremely limited to the number of header values you can set. The following header values cannot be used by the URLRequestHeader class:
Accept-Charset,Accept-Encoding,Accept-Ranges,Age,Allow,Allowed,Connection,Content-Length,Content-Location,Content-Range,Date,Delete,ETag,Expect,Get,Host,Keep-Alive,Last-Modified,Location,Max-Forwards,Options,Post,Proxy-Authenticate,Proxy-Authorization,Public,Put,Range,Referer,Retry-After,Server,TE,Trace,Trailer,Transfer-Encoding,Upgrade,URI,User-Agent,Vary,Via,Warning,WWW-Authenticate,x-flash-version.
These features are extremely limiting for an RIA platform. It’s not always easy to try an sell RIA solution that is based on a platform crippled by limited networking support. I sincerely hope that future incarnations can get around these issues by providing a real HTTP implementation.