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 № 1Tu imposti
- il
proxy
all'endpoint e - il
uri
(o nella versione più recentens
) 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 => [ ... ]
...
}
}
};