如何在Perl中发送此SOAP XML?
我必须在下面发送XML。我不知道从哪里开始。我知道我需要在Perl中查找SOAP,但基本上就是这样如何在Perl中发送此SOAP XML?,xml,perl,soap,client,Xml,Perl,Soap,Client,我必须在下面发送XML。我不知道从哪里开始。我知道我需要在Perl中查找SOAP,但基本上就是这样 <xs:element name="CheckDomain"> <xs:complexType> <xs:sequence> <xs:element name="domain" type="domainRef"/> <xs:element name="suggestions" type="xs:boolean" default="fal
<xs:element name="CheckDomain">
<xs:complexType>
<xs:sequence>
<xs:element name="domain" type="domainRef"/>
<xs:element name="suggestions" type="xs:boolean" default="false" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
好吧,您可以在CPAN上获得一个HTTP客户端,然后使用从哪里开始?开始阅读文档以了解更多信息;有更多扩展的SOAP处理库
如果您需要更多帮助,您可以在一些中找到所需的内容。您发布的XML片段看起来像XSD模式。它描述了以下XML:
<CheckDomain xmlns="...">
<domainRef>...</domainRef>
<suggestions>true</suggestions> <!-- or it could be "false" -->
</CheckDomain>
...
真的
您提供的代码片段没有说明CheckDomain需要什么名称空间,也没有说明domainRef内部应该是什么。为此,您需要完整的XSD文档
此外,如果看不到服务的WSDL文件,就不可能知道如何将其转换为有效的SOAP消息。(假设您处理的是真正的SOAP服务,而不仅仅是使用XSD模式描述其输入的REST或XML-RPC服务)
SOAP的美妙之处在于,您通常不必手动执行这些操作。您只需获得正确的工具并将其指向服务发布的WSDL和XSD文件,就可以自动生成执行正确操作的类。在如何使用perl发送soap消息中查看以下url:
saludos,使用
LWP::UserAgent
,这是一个实现web用户代理的类LWP::UserAgent
对象可用于发送web请求
use strict;
use LWP::UserAgent;
use HTTP::Request;
my $message = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:ecn=\"http://www.alcatel.com/ecn_csa/EcnServices.wsdl\">
<soapenv:Body>
<ecn:GetBusinessAccount>
<accountNumber>$number</accountNumber>
</ecn:GetBusinessAccount>
</soapenv:Body>
</soapenv:Envelope>";
my $userAgent = LWP::UserAgent->new();
my $request = HTTP::Request->new(POST => 'http://server:port/endpoint');
# $request->header(SOAPAction => '""'); #use it if required
$request->content($message);
$request->content_type("text/xml; charset=utf-8");
my $response = $userAgent->request($request);
# $response->code == 200
print $response->as_string;
使用严格;
使用LWP::UserAgent;
使用HTTP::请求;
我的$message=”
$number
";
my$userAgent=LWP::userAgent->new();
我的$request=HTTP::request->new(POST=>'http://server:port/endpoint');
#$request->header(SOAPAction=>“”)#如果需要,请使用它
$request->content($message);
$request->content_type(“text/xml;charset=utf-8”);
我的$response=$userAgent->request($request);
#$response->code==200
打印$response->as_字符串;