Hi Joanne, "getStaticConstantsByConvention" problem use to be solved using the optional compilation parameter: *-js-default-initializers=true*
(See this link: https://apache.github.io/royale-docs/create-an-application/optimizations/compiler-configuration-settings.html#default-initializers ) In Royale by default the variables are not initialized unlike in Flash / Flex. Crux needs for some things that these variables are initialized. Also maybe you need to add -js-dynamic-access-unknown-members=true ( https://apache.github.io/royale-docs/create-an-application/optimizations/compiler-configuration-settings.html#dynamic-access-unknown-members ) in case you are adding dynamic properties to plain objects HTH Carlos El vie., 24 jul. 2020 a las 10:05, Joanne Seneque (<[email protected]>) escribió: > Hi Carlos, > Thanks for the reply, I added traces to the code (client + server side) > and was able to debug up to the point where the message is constructed & > sent to server (in mx.rpc.http.AbstractOperation.prototype.sendBody ) > ---- > message.contentType = "application/x-www-form-urlencoded" > message.method = "POST" > message.body = {loginMode: "1", pwd: "jbggAFxcXFx7", scope: > "jbggAFdXV1fSpQ9e", username: "jbggAFhYWFgPvC96U1U="} > message.httpHeaders = {} > ---- > We can see that the "body" contains the object to be sent to the PHP > service / request call... > But in my PHP log: > > 2020-07-24 11:45:04 +04:00 --- info: request method: POST > 2020-07-24 11:45:04 +04:00 --- info: php input: > 2020-07-24 11:45:04 +04:00 --- info: user: > 2020-07-24 11:45:04 +04:00 --- info: pwd: > 2020-07-24 11:45:04 +04:00 --- info: scope: > 2020-07-24 11:45:05 +04:00 --- error: Login - Scope is not valid. > 2020-07-24 11:45:05 +04:00 --- error: Login - Blank user or password given > --------------------------- > > One thing I saw in the browser console is the following warning: > [WARNING] getStaticConstantsByConvention :: the reflection target > mx.rpc.http.mxml.HTTPService was not Compiled with default initializers > enabled > org.apache.royale.reflection.utils.getStaticConstantsByConvention @ > getStaticConstantsByConvention.js:52 > org.apache.royale.crux.reflection.TypeDescriptor.fromTypeDefinition @ > TypeDescriptor.js:194 > org.apache.royale.crux.reflection.TypeCache.getTypeDescriptor @ > TypeCache.js:64 > org.apache.royale.crux.BeanFactory.constructBean @ BeanFactory.js:577 > org.apache.royale.crux.BeanProvider.initializeBeans @ BeanProvider.js:79 > org.apache.royale.crux.BeanProvider.initialize @ BeanProvider.js:65 > org.apache.royale.crux.Crux.constructProviders @ Crux.js:169 > org.apache.royale.crux.Crux.init @ Crux.js:145 > org.apache.royale.crux.Crux.set__strand @ Crux.js:233 > org.apache.royale.core.ElementWrapper.addBead @ ElementWrapper.js:120 > org.apache.royale.core.HTMLElementWrapper.addBead @ > HTMLElementWrapper.js:50 > org.apache.royale.jewel.Application.start @ Application.js:260 > (anonymous) @ (index):560 > > Could this be linked to my issue (i.e. POST content is blank on PHP > server) ? > > Thanks & Regards > Joanne > > > > On 2020/07/23 07:45:44, Carlos Rovira <[email protected]> wrote: > > Hi Joanne, > > > > Here's a working example that uses mx:HTTPService with Crux [1], very > > similar to your code. > > > > can't see any issue in your code. Just ensure the service is responding > > correctly and put some traces in the classes to detect the point where it > > is failing. > > > > [1] > > > https://github.com/codeoscopic/avant2-website/blob/master/avant2-products-companies/src/main/royale/com/codeoscopic/avant/config/Beans.mxml > > > > El jue., 23 jul. 2020 a las 8:48, SENEQUE CRAIG THIERRY (< > > [email protected]>) escribió: > > > > > Hi, I am using an HTTPService to make a POST request to a > > > PHP server - the issue I am having is that the POST > > > data/params is not retrieved on the server... > > > Below is my code in delegate file (I followed examples > > > using 'crux'): > > > > > > Beans.mxml > > > > > > <crux:BeanProvider > > > xmlns:fx="http://ns.adobe.com/mxml/2009" > > > xmlns:crux="library://ns.apache.org/royale/crux" > > > xmlns:mx="library://ns.apache.org/royale/mx" > > > xmlns:model="model.*" > > > xmlns:service="service.*" > > > xmlns:controller="controller.*"> > > > > > > <!-- services config --> > > > <mx:HTTPService id="loginService" showBusyCursor="true"/> > > > > > > LoginDelegate.as > > > package service > > > { > > > import org.apache.royale.events.IEventDispatcher; > > > import mx.rpc.AsyncToken; > > > import mx.rpc.http.HTTPService; > > > > > > /** > > > * @royalesupresspublicvarwarning > > > */ > > > public class LoginDelegate > > > { > > > > > > [Dispatcher] > > > public var dispatcher:IEventDispatcher; > > > > > > [Inject('loginService')] > > > public var loginService:HTTPService; > > > > > > public function LoginDelegate() { > > > } > > > > > > public function login(loginURL:String, > > > params:Object):AsyncToken { > > > loginService.method = "POST"; > > > loginService.url = loginURL + 'login_web'; // > > > "login_URL" is for e.g. http://localhost/mySite/ > > > > > > > > > return loginService.send(params); // "params" > is > > > an > > > object as {user: xxx:, pwd: 123} > > > } > > > } > > > } > > > > > > ------------ > > > > > > On my PHP server both the "$_POST" and > > > "file_get_contents('php://input')" returns blank... > > > > > > Did I miss something on the HTTPService ? Or is there > > > another way to pass data through POST request ? > > > > > > > > > Thanks & Regards > > > > > > Joanne > > > > > > > > > -- > > Carlos Rovira > > http://about.me/carlosrovira > > > -- Carlos Rovira http://about.me/carlosrovira
