Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: SOAP for Perl

by nite_man (Deacon)
on Aug 03, 2004 at 10:09 UTC ( #379569=note: print w/replies, xml ) Need Help??

in reply to SOAP for Perl

Why is This is a multi-part message in MIME format... written to output.
Try to swith off 'trace' option:

use SOAP::Lite; # instead of SOAP::Lite +trace;

How can I modify the SOAP Envelope to produce the desired output
What is reason to do that. You can access to the responce data as normal Perl object:

my $res = SOAP::Lite -> uri(' +/schema/REL-5-MM7-1-2') -> on_action(sub { return "\"\""; }) -> proxy('') -> parts($ent); if($res->fault) { $self->errors($result); } else { my $reqObj = $res->result; print $reqObj->ServiceCode; #gold-sp33-im42 ... }
Also, try to see here some useful information about SOAP::Lite.


It's only my opinion and it doesn't have pretensions of absoluteness!

Replies are listed 'Best First'.
Re^2: SOAP for Perl
by TomJones (Initiate) on Aug 03, 2004 at 14:41 UTC
    Thanks for responding Schiller, I've turned tracing to off and this eliminates the MIME message. The server still rejects the message, however I believe this is because the SOAP Header TransactionID is not set in the SOAP Envelope. From Soap::Lite this is set using
    SOAP::Header->name(TransactionID => TransID)->mustUnderstand(1) <CODE +> <CODE> Q. Do I know how to access the Envelope and set this header
    <CODE> Q. I'd like to set values rather than request then so for example SubmitReq(SOAP::Data->name("MM7Version" => '5.3.0'))<CODE> A million thanks. Tj.

      You can create header and body using SOAP::Serializer and pass it using SOAP::Lite method on_action:

      my $soapObj = SOAP::Lite -> uri(' +ema/REL-5-MM7-1-2') -> on_action(sub { return SOAP::Serializer->envelope(method => 'MM +7Version', '5.3.0', SOAP::Header->name(TransactionID => 5) +->mustUnderstand(1) ); }) -> proxy(''); print $soapObj->result;
      Result is:
      <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsi=" +e" xmlns:SOAP-ENC="" xmlns:SOAP-ENV="" xmlns:xsd="" SOAP-ENV:encodingStyle=""> <SOAP-ENV:Header> <TransactionID SOAP-ENV:mustUnderstand="1" xsi:type="xsd:int">5</Trans +actionID> </SOAP-ENV:Header> <SOAP-ENV:Body> <MM7Version> <c-gensym5 xsi:type="xsd:string">5.3.0</c-gensym5></MM7Version> </SOAP-ENV:Body> </SOAP-ENV:Envelope>


      It's only my opinion and it doesn't have pretensions of absoluteness!

      Hope it helps :)

        Hi Schiller, Thanks. One last question. When I submit a SOAP message encapsulated in a post operation how can I change the following headers SOAP::Transport::HTTP::Client::send_receive: POST HTTP/1.1 Accept: text/xml Accept: multipart/* Content-Length: 2810 Content-Type: text/xml to
        Content-Type multipart/related;boundary ="soap-border";type ="text/xml +"" start =Test Content-Length Authorization: Basic

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://379569]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (7)
As of 2021-06-22 11:28 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (104 votes). Check out past polls.