2015-04-07 41 views
3

我的任务是创建Perl脚本,该脚本可以使用提供的参数创建XML负载并调用SOAP调用,然后读取响应和解析参数以供下次使用。我在SOAP消息传递方面很新颖。如何直接通过解析WSDL文件来创建SOAP请求?

我有一个基于WSDL文件,我可以手动创建XML SOAP消息,但我不认为这是如何做到这一点的正确方法。我也不明白如何调用SOAP调用。是的,我可以阅读文档,并且已经阅读过几次,但我想问一下是否有可能通过解析WSDL文件直接创建SOAP请求。这个话题有什么可能性?

我只有一个描述或伪代码,它应该做什么,我是SOAP/Web服务的新手。你有什么链接可以对我有用吗?

+1

[SOAP ::精简版(http://p3rl.org/SOAP::Lite),[XML ::编译]( http://p3rl.org/XML::Compile) – choroba

+0

尝试[SOAP :: WSDL](http://search.cpan.org/~swalters/SOAP-WSDL-3.003/lib/SOAP/WSDL.pm)。非常有用和易于使用。 – PseftiS

+0

我认为SOAP :: WSDL已经过时了...也许我误解了它。 – palyxk

回答

0

我会建议XML::Compile::WSDL11

从文档:

use XML::Compile::WSDL11(); 

# once in your program 
my $wsdl = XML::Compile::WSDL11->new('def.wsdl'); 

# XML::Compile::Schema refuses to follow "include" and 
# "import" commands, so you need to invoke them explicitly. 
# $wsdl->addWSDL('file2.wsdl');   # optional 
# $wsdl->importDefinitions('schema1.xsd'); # optional 

# once for each of the defined operations 
my $call = $wsdl->compileClient('GetStockPrice'); 

# see XML::Compile::SOAP chapter DETAILS about call params 
my $answer = $call->(%request);