我是客户端 - 我希望调用 Web 服务的方法。
我有一个 Web 服务地址(.svc 后缀),并且有该方法的名称、返回值及其参数。
该服务是通过 WCF(HTML 端点)实现的。我希望通过以下方式调用这些方法SOAP::Lite
。我应该为 URI、代理编写什么以及如何调用这些方法?
You set
- the
proxy
到终点并且
- the
uri
(或者在最新版本中ns
) 到方法定义中的命名空间。
最简单的方法之一就是使用 WSDL URI 并创建一个SOAP::Schema
对象,就像这样:
my $schema = SOAP::Schema->new( schema_url => $destination_URL )->parse();
my $services = $schema->services();
并转储这两个对象。
你可以寻找
my $method_def = $service->{ $method_name };
my $uri = $method_def->{namespace};
my $proxy = $method_def->{endpoint}->value();
如果一切都在那里,请使用这些值。
我必须挖掘大量 SOAP::Lite 转储才能使我的 SOAP 客户端架构正常工作。如果您想解决所有麻烦,您应该知道如何调试和转储 Perl 对象。
我将向您展示服务的匿名转储:
$services = {
ServiceName => {
MethodName => {
endpoint => bless( {
_attr => {},
_name => 'location',
_signature => [],
_value => [
# v-- This value you pass to SOAP::Lite->proxy
'http://some.domain.com/WebServices/SOAPEndpoint.asmx'
]
}, 'SOAP::Custom::XML::Data'
),
# v-- This value you pass to uri/default_ns/ns
namespace => 'http://some.domain.com/',
parameters => [ ... ]
...
}
}
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)