Set JSON content-type on s:HttpService in flex Set JSON content-type on s:HttpService in flex json json

Set JSON content-type on s:HttpService in flex


Looks like I have sorted it out. The trick is that Accept header should be added on service:

       var header:Object=new Object();        **header["Accept"] = "application/json";**        service.contentType = "application/json";        service.headers = header;        service.send('{}');

I wish it could be helpful for somebody. Good luck.


Thanks, this was very helpful to me. I simplified the header assignment to:

httpService.headers = { Accept:"application/json" };


Thought I'd post a cleaner example.

-------- JsonHttpService.as

package services{    import mx.rpc.http.HTTPService;    import mx.rpc.http.SerializationFilter;    public class JsonHttpService extends HTTPService    {        private var jsonFilter:JsonSerializationFilter = new JsonSerializationFilter();        public function JsonHttpService(rootURL:String=null, destination:String=null)        {            super(rootURL, destination);            resultFormat = "json";        }        override public function get serializationFilter():SerializationFilter {            return jsonFilter;        }    }}

--- JsonSerializationFilter.as

package services{    import mx.rpc.http.AbstractOperation;    import mx.rpc.http.SerializationFilter;    public class JsonSerializationFilter extends SerializationFilter    {        public function JsonSerializationFilter() {            SerializationFilter.registerFilterForResultFormat("json", this);            super();        }        override public function deserializeResult(operation:AbstractOperation, result:Object):Object {            return JSON.parse(result as String);        }        override public function getRequestContentType(operation:AbstractOperation, obj:Object, contentType:String):String {            return "application/json";        }        override public function serializeBody(operation:AbstractOperation, obj:Object):Object {            return JSON.stringify(obj);        }    }}