Как я могу получить доступ к методам Web-сервиса, используя Perl? - PullRequest
1 голос
/ 01 апреля 2011

Я хочу выполнить два метода Web-сервиса, используя Perl. У меня есть URL-адрес этого веб-сервиса, и он имеет расширение .svc. У меня также есть имена методов, что они получают в качестве параметров и что они возвращают. Как мне это сделать? Если вы можете быть подробно, это будет хорошо.

Я пытался:

use SOAP::Lite;
use SOAP::TRANSPORT;

$client = SOAP::Lite->new();
$client->SOAP::TRANSPORT::HTTP('http://perl-server/perl.svc');
print $client->method_1("hi");
print $client->result();

Но он всегда возвращает 1, и мне нужно получить ответ "true" в результате method_1. Я думаю, что он возвращает 1 не из этого метода, а из-за успешно пройденного соединения.

1 Ответ

0 голосов
/ 08 июля 2011

Мне тоже потребовалось время, чтобы получить это:

WSDL - страница определения веб-службы (lang), на которой SOAP может читать стандартный формат всех функций / классов, доступных на сервере.и как с ними разговаривать.В основном файл заголовка.

URI - страница определения класса, так что вы можете написать класс сервера SOAP, а затем передать его сотням людей, и каждый сможет указать на один и тот же файл определения, чтобы при обновлении всехКлиентам SOAP не нужно ничего обновлять

PROXY - фактическая реализация класса URI, обычно написанная на wsdl.Это страница, с которой вы на самом деле подключаетесь и общаетесь.

Вот почему вам нужен прокси и URI для подключения к сервису SOAP - определение и реальный сервер.Что касается Perl-кода,

my $cli = SOAP::Lite->proxy('proxyurl')->uri('uriurl');

my $call_return_obj = $cli->somefunc('hello');
if ($call_return_obj->faultstring ne '')
{
   print "somethin bad happened: ".$call_return_obj->faultstring."\n";
}
else
{
   my $resultstruct = $call_return_obj->results;
}

Тогда это становится еще сложнее.Вложенные типы выражаются как указатели на массивы / хэши, заполненные большим количеством указателей других массивов или хэшей, только последние уровни массивов / хэшей могут содержать в себе фактические значения.Вот так они и возвращаются из SOAP :: Lite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...