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.