Аз съм клиент - искам да наричам методи на уеб услуга.
Имам адрес на уеб услуга (.svc суфикс) и имам името на метода, връщаната стойност и техния аргумент.
Услугата се изпълнява с WCF (HTML крайна точка). Искам да наричам тези методи SOAP::Lite
, Какво да пиша за URI, прокси сървъра и как точно да извикам методите?
Отговори:
5 за отговор № 1Вие сте настроили
- на
proxy
към крайната точка и - на
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 => [ ... ]
...
}
}
};