I’m sending a json string to a REST server and receiving one in return, The flash code I’ve used is as follows
var urlLoader : URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
var header1 : URLRequestHeader = new URLRequestHeader("Content-Type", "application/json");
var header2 : URLRequestHeader = new URLRequestHeader("Accept", "application/json");
var header3 : URLRequestHeader = new URLRequestHeader("pragma", "no-cache");
var urlRequest : URLRequest = new URLRequest(url);
urlRequest.requestHeaders.push(header1);
urlRequest.requestHeaders.push(header2);
urlRequest.requestHeaders.push(header3);
urlRequest.data = session;
urlRequest.contentType = "application/json";
urlRequest.method = URLRequestMethod.POST;
urlLoader.load(urlRequest);
When I don’t add the custom request headers to the request, my server receives the POST data correctly. When I add the custom headers, POST is empty. What could be causing this?
Though the data will be sent via POST, PHP won’t populate the
$_POSTglobal array because you’re using a Content-Type ofapplication/json.Try updating you Content-Type header to
application/x-www-form-urlencoded:And here as well, though you already set the header above: