/ / Клиент на уеб услуга в Perl - уеб-услуги, perl, клиентска, perl-модул, soaplite

Клиент на уеб услугата в Perl - уеб-услуги, perl, client-side, perl-module, soaplite

Аз съм клиент - искам да наричам методи на уеб услуга.

Имам адрес на уеб услуга (.svc суфикс) и имам името на метода, връщаната стойност и техния аргумент.

Услугата се изпълнява с WCF (HTML крайна точка). Искам да наричам тези методи SOAP::Lite, Какво да пиша за URI, прокси сървъра и как точно да извикам методите?

Отговори:

5 за отговор № 1

Вие сте настроили

  1. на proxy към крайната точка и
  2. на 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 => [ ... ]
...
}
}
};