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

token.result 是正确的查找位置吗?如果结果为空,他们无论如何都会找出为什么它为空,这意味着检查 WSDL 是否可用,以及它是否是有效的请求?

我正在应用程序中运行网络监视器以确保其在线。

我的登录过程代码如下

<?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>
有帮助吗?

解决方案 2

在让这个问题搁置之后,我将关闭它,因为它表明 Pingdom API WSDL 存在错误。我将报告该错误,并希望将来通过他们即将推出的 REST API 修复该错误。

其他提示

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

即使这个问题已被放弃,也可能有人会提出同样的问题。

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

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

<s:CallResponder id="Auth_loginResult" result="trace(event.result)" error="trace(event)"/>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top