【问题标题】:Flex Webservice弹性网络服务
【发布时间】:2011-10-25 15:16:00
【问题描述】:

我使用的是 Flash Builder 4.5 和 flex 4.5 语言。 我正在使用网络服务来检索调用 .php 的 json 中的数据。

<webservice:Webservice id="webservice" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
<s:CallResponder id="testResult" result="onTestResult(event)"/>

...

private function onTestResult(e:ResultEvent):void{
    Alert.show(ObjectUtil.toString(testResult.lastResult));
}

在 Flash Builder 的“测试操作”窗口中,我进行了调用,返回的是一个由数组构成的 json 对象。

如果我从代码中调用相同的 web 服务,它会返回一个 (object)#0,因此是一个空对象。没有错误,只是一个空对象。

有人有什么建议吗?

【问题讨论】:

  • 它是否在访问网络服务?是否有任何服务器日志更新?

标签: web-services actionscript-3 apache-flex flash-builder


【解决方案1】:

Webservice 类的 ns 前缀表明您正在使用自定义实现,而不是框架 WebService 类。但是,你没有提供任何细节,所以我会在黑暗中摇摆:

如果您的自定义服务基于 HTTPService 类,请确保您设置的是 resultFormat='text'。默认是XML,这会给你带来麻烦。

如果您使用的是 Framework WebService 类,那么 - 您不能,因为它是为 SOAP Web 服务而不是 JSON 设计的。 (来自mx.rpc.soap.WebService 的文档:)

WebService 类提供对基于 SOAP 的 Web 服务的访问 远程服务器。

如果是其他实现,请提供更多详细信息。

【讨论】:

  • 问题出在结果格式中。我设置了一个通用的 Object(),但 flex 似乎不喜欢转换 myResult -> Object,所以我制作了一个自定义 myObjectType(),其中的字段完全命名为返回的 JSON 序列化数组,并且数据被正确插入.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 2011-01-05
  • 1970-01-01
  • 2016-05-01
相关资源
最近更新 更多