SOAP::MIME - Patch to SOAP::Lite to add attachment support. This module allows Perl clients to both compose messages with attachments, and to parse messages with attachments.
SOAP::Lite (http://www.soaplite.com/) is a SOAP Toolkit that allows users to create SOAP clients and services. As of July 15, 2002, MIME support in SOAP::Lite was minimal. It could parse MIME formatted messages, but the data contained in those attachments was "lost."
This Perl module, patches SOAP::Lite so that users can not only send MIME formatted messages, but also gain access to those MIME attachments that are returned in a response.
6/12/2002 - Need to add ability to compose and send attachments. FIXED on 7/15/2002 7/15/2002 - Ability to process attachments on the server side has not yet been tested. 7/26/2002 - Reworked the parsing of the response to return an array of MIME::Entity objects which enables to user to more fully utilize the functionality contained within that module 3/18/2003 - Added server-side attachment support for HTTP
Used to retrieve MIME parts returned in a response. The subroutine parts() returns a reference to an array of MIME::Entity objects parsed out of a message.
Used to specify an array of MIME::Entities. These entities will be attached to the SOAP message.
use SOAP::Lite; use SOAP::MIME; my $soap = SOAP::Lite ->readable(1) ->uri($NS) ->proxy($HOST); my $som = $soap->foo(); foreach my $part (${$som->parts}) { print $part->stringify; }
use SOAP::Lite; use SOAP::MIME; use MIME::Entity; my $ent = build MIME::Entity Type => "image/gif", Encoding => "base64", Path => "somefile.gif", Filename => "saveme.gif", Disposition => "attachment"; my $som = SOAP::Lite ->readable(1) ->uri($SOME_NAMESPACE) ->parts([ $ent ]) ->proxy($SOME_HOST) ->some_method(SOAP::Data->name("foo" => "bar"));
sub echo { my $self = shift; my $envelope = pop; my $ent = build MIME::Entity 'Id' => "<1234>", 'Type' => "text/xml", 'Path' => "examples/attachments/some2.xml", 'Filename' => "some2.xml", 'Disposition' => "attachment"; return SOAP::Data->name("foo" => $STRING),$ent; }
SOAP::Lite, MIME::Entity
To install SOAP::MIME, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SOAP::MIME
CPAN shell
perl -MCPAN -e shell install SOAP::MIME
For more information on module installation, please visit the detailed CPAN module installation guide.