Flex 4中的SOAP响应

时间:2011-01-24 00:44:33

标签: flex soap flashbuilder4 pingdom

我正在使用Flex 4 AIR应用程序中的Pingdom API,并使用Flash Builder 4中内置的数据/服务构建器.Tingdom的API基于SOAP构建(至少现在),Flash Builder 4能够导入WSDL文件很好,但是当我尝试在我的令牌中发送Auth_login请求时,结果变量为null。我不确定我是在寻找错误的地方,还是在寻找什么。确切地说,我正在查看Auth_loginResult.token.result的值。

token.result是正确的地方吗?如果result为null,那么无论如何都要找出它为null的原因,这意味着检查WSDL是否可用,以及它是否是有效请求?

我在应用中运行Net Monitor以确保它在线。

我的代码如下登录过程

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:pingdomapi="services.pingdomapi.*"
        title="Login">
    <fx:Script>
        <![CDATA[
            import valueObjects.Auth_CredentialsData;


            protected function login(event:MouseEvent):void
            {
                var credentials:Auth_CredentialsData = new Auth_CredentialsData;
                credentials.username = txt_username.text;
                credentials.password = txt_password.text;
                Auth_loginResult.token = pingdomAPI.Auth_login('****',credentials);
                trace(Auth_loginResult.token.result);
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <s:CallResponder id="Auth_loginResult"/>
        <pingdomapi:PingdomAPI id="pingdomAPI"/>
    </fx:Declarations>
    <s:Label x="10" y="10" text="Username"/>
    <s:TextInput id="txt_username" x="10" y="41" text="david.long@cagedata.com"/>
    <s:Label x="10" y="104" text="Password"/>
    <s:TextInput id="txt_password" x="10" y="135" displayAsPassword="true" text="Simpsons#1"/>
    <s:Button id="btn_login" y="198" right="30" label="Login" click="login(event)"/>
</s:View>

3 个答案:

答案 0 :(得分:0)

根据this,您应该寻找Auth_LoginResponse的sessionId元素。

答案 1 :(得分:0)

在让这个问题出现之后我将关闭它,因为接缝时Pingdom API WSDL出现错误。我将报告错误,并希望将来使用他们即将推出的REST API来修复它。

答案 2 :(得分:0)

即使这个问题已经被放弃,但有人可能会在同一个问题上过去。

结果为null的原因是调用是异步的。当戴夫试图追踪它时,反响还没有到来。

相反,跟踪Auth_loginResult CallResponder的结果和/或错误处理程序,如下所示:

<s:CallResponder id="Auth_loginResult" result="trace(event.result)" error="trace(event)"/>