in reply to Re: SOAP for Perl
in thread SOAP for Perl

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.

Replies are listed 'Best First'.
Re^3: SOAP for Perl
by nite_man (Deacon) on Aug 04, 2004 at 07:55 UTC

    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

        using the SOAP::Lite transport() method you can access the SOAP::Transport::HTTP and gain access to the HTTP::Request or HTTP::Response objects (that control the headers) via the request() and response() methods.

        /J\