2

在使用 wsdl2perl 成功构建我的界面后,我希望以通用方式检索此 Web 服务的数据。

我是 SOAP 和 WSDL 的新手,我浏览过 google/CPAN,当然就在 Stack 上,如何通过 Web 服务 API 获取数据,我更喜欢 Perl!在考虑以下选项后:

  1. 肥皂::精简版
  2. SOAP::WSDL(是的!我的 Web 服务提供确实有一个干净的 wsdl)
  3. wsdl2perl
  4. 存根制造者

我选择了选项 3,(这是正确的选择吗?)

我正在寻找由 Web 服务返回的所有数据,该服务返回一个数组,其中并非原始类的所有单个属性都会始终存在(如果它在返回的 XML 中,则待定)。我可以使用as_hash_ref!如下:

my $h = $objects->get_return()->[0]->as_hash_ref();
print join ", " => keys %$h, "\n";

这给了我数组的第一个键的所有键,但是,我假设,我不能保证它会根据 wsdl2perl 在MyTypes::Object.

我基本上,正在寻找一个类的所有类方法,其超类的类型为:SOAP::WSDL::XSD::Typelib::ComplexType

我试图在课堂上寻找一些提示:

confess "Can't locate object method \"$_\" via package \"$class\". \n"
        . "Valid methods are: "
        . join(', ', map { ("get_$_" , "set_$_") } keys %{ $ATTRIBUTES_OF{ $class } })
        . "\n"

然而,进一步挖掘,我意识到这$ATTRIBUTES_OF是由调用填充的,__PACKAGE__->_factory我被困在如何获取MyTypes::Object由 wsdl2perl 创建的给定类的所有获取器。

简单地说,我希望对 Web 服务返回的数组的所有元素进行一般迭代,并打印出(到 csv 文件)MyTypes::Object由 wsdl2perl 创建的类的所有可能属性。

4

0 回答 0