Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید

18.14. Writing a SOAP Client


18.14.1. Problem



You want to write a client for a SOAP
web service.

18.14.2. Solution


Use the SOAP::Lite module from the SOAP-Lite distribution:

use SOAP::Lite;
$server = SOAP::Lite
-> uri("http://localhost/Namespace")
-> proxy("http://server.example.com/path");
$result = $server->call(''ClassName.handler'', @ARGS);
die $call->faultstring if $call->fault;
print $call->result;

18.14.3. Discussion


A single SOAP server may offer remote access to the methods of many
classes. A client identifies the class upon which it wishes to invoke
methods with the uri parameter. The hostname in
the argument is irrelevant; only the path portion (the class name)
matters. For example, these two URIs are equivalent:

http://modacrylic.clue.com/GimpyMod
http://weenies.mit.edu/GimpyMod

As with XML-RPC, the proxy argument is the
server''s URL. For example, if your SOAP server is implemented as a
CGI script, the proxy call looks like this:

$server->proxy("http://server.example.com/path/to/server.cgi");

Invoke remote methods as you do with XML-RPC, either with the
call method:

$returned = $server
-> call("getRecordByNumber", 12, { format => "CSV" })
-> result;

or by invoking the method on a SOAP::Lite object directly:

$returned = $server
-> getRecordByNumber(12, { format => "CSV" })
-> result;

or using autodispatch:

use SOAP::Lite +autodispatch =>
uri => "http://identifier.example.com/Namespace",
proxy => "http://server.example.com/path";
$returned = getRecordByNumber(12, { format => "CSV" });

You can also use this with OO syntax:

$returned = Some::Remote::Module->getRecordByNumber(12, { format => "CSV" });

18.14.4. See Also


There''s a lot more to SOAP than we can explain
here. The books Programming Web Services with
SOAP
, by James Snell, Pavel Kulchenko, and Doug Tidwell
(O''Reilly), and Programming Web Services with Perl,
by Randy Ray and Pavel Kulchenko (O''Reilly), form a
comprehensive guide to the standards and implementations. Also see
Recipe 18.11; Recipe 18.13

/ 875