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
> 

Reply via email to