/ / Client del servizio web in Perl - servizi web, perl, lato client, modulo perl, soaplite

Client del servizio web in Perl - servizi web, perl, lato client, modulo perl, soaplite

Sono il cliente - desidero chiamare i metodi di un servizio web.

Ho un indirizzo di servizio web (suffisso .svc) e ho il nome del metodo, il valore di ritorno e il loro argomento.

Il servizio è implementato con WCF (HTML end point). Desidero chiamare questi metodi con SOAP::Lite. Cosa devo scrivere per l'URI, il proxy e come posso chiamare esattamente i metodi?

risposte:

5 per risposta № 1

Tu imposti

  1. il proxy all'endpoint e
  2. il uri (o nella versione più recente ns) nello spazio dei nomi nella definizione del metodo.

Uno dei modi più semplici per farlo è semplicemente usare l'URI WSDL e creare un file SOAP::Schema oggetto con esso, in questo modo:

my $schema = SOAP::Schema->new( schema_url => $destination_URL )->parse();
my $services = $schema->services();

E scarica quei due oggetti.

Puoi cercare

my $method_def = $service->{ $method_name };

my $uri   = $method_def->{namespace};
my $proxy = $method_def->{endpoint}->value();

E usa quei valori, se c'è tutto.

Ho dovuto scavare attraverso molti dump SOAP :: Lite per far funzionare l'architettura del mio client SOAP. Dovresti sapere come eseguire il debug e il dump di oggetti Perl se vuoi eliminare tutti i tuoi problemi.

Ti mostrerò un dump anonimo di un servizio:

$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 => [ ... ]
...
}
}
};