[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Soap message with xml as string
Hi Scott,
thanks for your answere.
I realize that I'm not explaining my problem good enough....;-)
See my comments below.
>-----Original Message-----
>From: Scott Klement [mailto:sk@xxxxxxxxxxxxxxxx]
>Sent: Monday, December 18, 2006 07:20 AM
>To: 'HTTPAPI and FTPAPI Projects'
>Subject: Re: Soap message with xml as string
>
>Hello Magne,
>
>> The problem seem to be that I'm sending real xml in the <dataxml>
tag.
>> I've tried to convert all the '<' and '>' to < > in the
<dataxml>
>> tag but all my tries has resulted in expat message"no elements
found".>
>I don't understand what this has to do with Expat. Your SOAP variable
is
>the data that you're sending to the web service. Expat never sees it,
nor
>tries to parse it.
Yes Scott...just meant to explain that I receive an invalid document
and expat is giving me the "no elements found" message.
>
>Instead, Expat tries to parse what you receive from the web service.
>Naturally, the two are related, if you send an invalid document to
the web
>service, it might send an invalid document back!
>A good starting point is to call HTTP_url_post() instead of
>HTTP_url_post_xml(). That way, you can see what you're receiving back
>from the web service. Once you get back the response that you're
>expecting (the correct SOAP document, I mean) then switch over the
>http_url_post_xml() so that it gets parsed correctly.
Thanks Scott....I will try the HTTP_url_post() first in the future.
>
>> When I remove the xml data in <dataxml> tag (empty dataxml) I
receive a
>> soap response from the web service (just says that there was no
data in
>> the dataxml tag). Anyone knows how to build string xml within xml?
>
>That depends on what you mean by that. Should the data be escaped? Or
>not? I don't know how the web service works! Is there a WSDL document
>you can look at for answers?
I had to wrap the xml request in a <!CDATA tag to get it working
(build string xml within xml e.g <dataxml>string<dataxml> where
string=xml).
>
>
>> Another question (just quorious):
>> Why the +2 in %addr(SOAP) + 2 ?
>
>Because SOAP is a VARYING string. The first 2 bytes of a varying
string
>always contain a binary number representing the current length of the
>string. Since you don't want to send that binary number, you need to
>start sending data that's 2 bytes later in memory than the start of
the
>variable.
>
>"%addr(SOAP) + 2" means "start sending 2 bytes later than the address
of
>the SOAP variable".
>
Ok, I tried to set the pointer to an IFS file (instead of %addr(SOAP))
and lost the first 2 characters. Solved it by having 2 blanks first
in the file.
>
>> And is is possible to use this (add_soapaction) 2 times (or more)
in the
>> same program/rc? http_xproc( HTTP_POINT_ADDL_HEADER :
>> %paddr(Add_SOAPACTION) );
>
>I don't understand the question. That code sets an exit procedure to
call
>when the ADDL_HEADER exit point occurs. Can you set it twice? Sure,
but
>why would you want to?
I just needed to add 2 different soap action in the same program (a
dialog with the web service) . I have now tested it and it works
fine.
Again Scott...thanks for your answere!
Best regards
Magne
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------