Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: SOAP for Perl

by nite_man (Deacon)
on Aug 03, 2004 at 10:09 UTC ( [id://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('http://www.3gpp.org/ftp/Specs/archive/23_series/23.140 +/schema/REL-5-MM7-1-2') -> on_action(sub { return "\"\""; }) -> proxy('http://10.236.137.7:10021/vas_soap') -> 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.

---
Schiller

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('http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/sch +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('http://10.236.137.7:10021/vas_soap'); print $soapObj->result;
      Result is:
      <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instanc +e" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <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>

      ---
      Schiller

      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://10.236.137.7:10021/vas_soap 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?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2024-04-25 12:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found