[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Ftpapi Digest, Vol 78, Issue 3



Thank You all for your help. How do I look at the debug logs? I never done that. thanks

-----Original Message-----
From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of ftpapi-request@xxxxxxxxxxxxxxxxxxxxxx
Sent: Monday, April 01, 2013 3:16 PM
To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
Subject: Ftpapi Digest, Vol 78, Issue 3

Send Ftpapi mailing list submissions to
        ftpapi@xxxxxxxxxxxxxxxxxxxxxx

To subscribe or unsubscribe via the World Wide Web, visit
        http://scottklement.com/mailman/listinfo/ftpapi
or, via email, send a message with subject or body 'help' to
        ftpapi-request@xxxxxxxxxxxxxxxxxxxxxx

You can reach the person managing the list at
        ftpapi-owner@xxxxxxxxxxxxxxxxxxxxxx

When replying, please edit your Subject line so it is more specific than "Re: Contents of Ftpapi digest..."


Today's Topics:

   1. RE: HTTP/1.1 400 Bad Request (Robert Gilsdorf)
   2. Re: HTTP/1.1 400 Bad Request (Charles Wilt)
   3. Re: HTTP/1.1 400 Bad Request (Scott Klement)
   4. Re: HTTPAPI with CDATA (Scott Klement)


----------------------------------------------------------------------

Message: 1
Date: Mon, 1 Apr 2013 15:57:27 -0400
From: Robert Gilsdorf <rgilsdor@xxxxxxxxxxxxxxxx>
To: HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
Subject: RE: HTTP/1.1 400 Bad Request
Message-ID:
        <F911C5CB2047A14F823096C71297EEE1014CCB7A7CF7@xxxxxxxxxxxxxxxxxxxxxxxxxxx>

Content-Type: text/plain; charset="us-ascii"

No space after xmlns:soapenv url could lead to a misfire.

-----Original Message-----
From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Mauricio Diaz-Lapham
Sent: Monday, April 01, 2013 2:28 PM
To: 'ftpapi@xxxxxxxxxxxxxxxxxxxxxx'
Subject: HTTP/1.1 400 Bad Request

Hello, Can someone help me! I keep getting this error and I have no clue as to what is causing it. Below is my code.

H DFTACTGRP(*NO) BNDDIR('HTTPAPI':'QC2LE')

d Setup           pr

d WebService      pr            10i 0

D Incoming        PR
d   ProcessJrn                 100A
D   depth                       10I 0 value
D   name                      1024A   varying const
D   path                     24576A   varying const
D   value                    65535A   varying const
D   attrs                         *   dim(32767)
D                                     const options(*varsize)

d ARWBSRV01       pi
d  ErrMsg                     1024a   varying
 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
c*====================================================================
c* Copybooks
c*====================================================================

 /copy config_h
 /copy httpapi_h

d Soap            s          32767a
d ProcessJrn      s            100a
d ReturnCode      s             10i 0
d WebSite         s            100a
D soapfile        s             50a   varying

dVariableRecords...
d                 ds                  Qualified
d Number                        10i 0

c*====================================================================
c* Main
c*====================================================================
 /free

     Setup();

/end-free

**********************************************************************
* Main processing - Call the Webservice to update CMA
**********************************************************************

/Free

     // Call the web service that will update the client smart file.
     ReturnCode = WebService();
     If ReturnCode <> 1;
        ErrMsg = http_error();
        ReturnCode = -1;
     EndIf;

  /end-free
c*====================================================================
c* Setup();
c*
c* General setup.
c*====================================================================

p Setup           b
 /free

  VariableRecords.Number = 4; // Number of keys.

  // Turn HTTP debug on or off
  http_debug(*ON);

  // Set the correct CCSID.
  http_setCCSIDs(1208:0);

  // Strip off back end CRLFs on the returned XMLs.
  http_XmlStripCRLF(*ON);

 /end-free
p Setup           e

c*====================================================================
c* WebService(); Call The Web Service.
c*====================================================================

p WebService      b
d WebService      pi            10i 0
 /free

   Soap =
   '<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>'
      +' <soapenv:Envelope '
      +  ' xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; '
      +  ' xmlns:upd="http://webservices.vonmaur.vmc/UpdateCMA.asmx";>'
      +   '   <soapenv:Header/>'
      +   '   <soapenv:Body>'
      +   '      <upd:ProcessJournal/>'
      +   '   </soapenv:Body>'
      + '</soapenv:Envelope>';

  // Consume the web service.
  ReturnCode = http_url_post_xml(
    'http://webservices.vonmaur.vmc/UpdateCMA.asmx'
    : %addr(SOAP) + 2
    : %len(SOAP)
    : *NULL
    : %paddr(Incoming)
    : %addr(ProcessJrn)
    : HTTP_TIMEOUT
    : HTTP_USERAGENT
    : 'text/xml'
    : 'http://webservices.vonmaur.vmc/UpdateCMA/ProcessJournal');

  return ReturnCode;

 /end-free
p WebService      e
c*====================================================================
c* Incoming1();
c* Parse the XML coming in to see what the client ID we received is.
c*====================================================================

p Incoming        B
d Incoming        PI
d   ProcessJrn                 100a
d   depth                       10i 0 value
d   name                      1024a   varying const
d   path                     24576a   varying const
d   value                    65535a   varying const
d   attrs                         *   dim(32767)
d                                     const options(*varsize)

D atof            PR             8F   extproc('atof')
D   string                        *   value options(*string)
 /free

  if (name = 'ProcessJournal');
   ProcessJrn = value;
  endif;

 /end-free
p Incoming        E





This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. Rush Trucking, PO Box 1011, Wayne, MI 48184 www.rushtrucking.com


------------------------------

Message: 2
Date: Mon, 1 Apr 2013 16:00:50 -0400
From: Charles Wilt <charles.wilt@xxxxxxxxx>
To: HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: HTTP/1.1 400 Bad Request
Message-ID:
        <CAJ=Tnc7SjCKr-JPUcv5U+hTfUKwe0z2kP-JjnTLdKi16oN1p0Q@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset="iso-8859-1"

You should post the debug log, making sure to strip out user IDs and passwords.

But generally speaking, a 400 Bad Request means you didn't send your request correctly.

Does the web service you are trying to call have a WSDL that provides a definition of how to use the service?

Charles


On Mon, Apr 1, 2013 at 2:27 PM, Mauricio Diaz-Lapham < MDiaz-Lapham@xxxxxxxxxxx> wrote:

>    Hello, Can someone help me! I keep getting this error and I have no
>    clue as to what is causing it. Below is my code.
>
>
>    H DFTACTGRP(*NO) BNDDIR('HTTPAPI':'QC2LE')
>
>
>    d Setup           pr
>
>
>    d WebService      pr            10i 0
>
>
>    D Incoming        PR
>
>    d   ProcessJrn                 100A
>
>    D   depth                       10I 0 value
>
>    D   name                      1024A   varying const
>
>    D   path                     24576A   varying const
>
>    D   value                    65535A   varying const
>
>    D   attrs                         *   dim(32767)
>
>    D                                     const options(*varsize)
>
>
>    d ARWBSRV01       pi
>
>    d  ErrMsg                     1024a   varying
>
>
> *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
>
>
> c*====================================================================
>
>    c* Copybooks
>
>
> c*====================================================================
>
>
>
>     /copy config_h
>
>     /copy httpapi_h
>
>
>    d Soap            s
>    32767a
>
>    d ProcessJrn      s            100a
>
>    d ReturnCode      s             10i 0
>
>    d WebSite         s            100a
>
>    D soapfile        s             50a   varying
>
>
>
>    dVariableRecords...
>
>    d                 ds                  Qualified
>
>    d Number                        10i 0
>
>
>
>
> c*====================================================================
>
>    c* Main
>
>
> c*====================================================================
>
>     /free
>
>
>
>         Setup();
>
>
>    /end-free
>
>
>
> **********************************************************************
>
>    * Main processing - Call the Webservice to update CMA
>
>
> **********************************************************************
>
>
>    /Free
>
>
>         // Call the web service that will update the client smart file.
>
>         ReturnCode = WebService();
>
>         If ReturnCode <> 1;
>
>            ErrMsg = http_error();
>
>            ReturnCode = -1;
>
>         EndIf;
>
>
>      /end-free
>
>
> c*====================================================================
>
>    c* Setup();
>
>    c*
>
>    c* General setup.
>
>
> c*====================================================================
>
>
>
>    p Setup           b
>
>     /free
>
>
>
>      VariableRecords.Number = 4; // Number of keys.
>
>
>
>      // Turn HTTP debug on or off
>
>      http_debug(*ON);
>
>
>
>      // Set the correct CCSID.
>
>      http_setCCSIDs(1208:0);
>
>
>      // Strip off back end CRLFs on the returned XMLs.
>
>      http_XmlStripCRLF(*ON);
>
>
>
>     /end-free
>
>    p Setup           e
>
>
>
>
> c*====================================================================
>
>    c* WebService(); Call The Web Service.
>
>
> c*====================================================================
>
>
>
>    p WebService      b
>
>    d WebService      pi            10i 0
>
>     /free
>
>
>
>       Soap =
>
>       '<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>'
>
>          +' <soapenv:Envelope '
>
>          +  ' xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; '
>
>          +  ' xmlns:upd="http://webservices.vonmaur.vmc/UpdateCMA.asmx";>'
>
>          +   '   <soapenv:Header/>'
>
>          +   '   <soapenv:Body>'
>
>          +   '      <upd:ProcessJournal/>'
>
>          +   '   </soapenv:Body>'
>
>          + '</soapenv:Envelope>';
>
>
>
>      // Consume the web service.
>
>      ReturnCode = http_url_post_xml(
>
>        'http://webservices.vonmaur.vmc/UpdateCMA.asmx'
>
>        : %addr(SOAP) + 2
>
>        : %len(SOAP)
>
>        : *NULL
>
>        : %paddr(Incoming)
>
>        : %addr(ProcessJrn)
>
>        :
>    HTTP_TIMEOUT
>
>        : HTTP_USERAGENT
>
>        : 'text/xml'
>
>        : 'http://webservices.vonmaur.vmc/UpdateCMA/ProcessJournal');
>
>
>
>      return ReturnCode;
>
>
>
>     /end-free
>
>    p WebService      e
>
>
> c*====================================================================
>
>    c* Incoming1();
>
>    c* Parse the XML coming in to see what the client ID we received is.
>
>
> c*====================================================================
>
>
>
>    p Incoming        B
>
>    d Incoming        PI
>
>    d   ProcessJrn                 100a
>
>    d   depth                       10i 0 value
>
>    d   name                      1024a   varying const
>
>    d   path                     24576a   varying const
>
>    d   value                    65535a   varying const
>
>    d   attrs                         *   dim(32767)
>
>    d                                     const options(*varsize)
>
>
>
>    D atof            PR             8F   extproc('atof')
>
>    D   string                        *   value options(*string)
>
>     /free
>
>
>
>      if (name = 'ProcessJournal');
>
>       ProcessJrn = value;
>
>      endif;
>
>
>
>     /end-free
>
>    p Incoming        E
>
> ----------------------------------------------------------------------
> - This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> ----------------------------------------------------------------------
> -
>
>
-------------- next part --------------
   You should post the debug log, making sure to strip out user IDs and
   passwords.
   But generally speaking, a 400 Bad Request means you didn't send your
   request correctly.
   Does the web service you are trying to call have a WSDL that provides a
   definition of how to use the service?
   Charles

   On Mon, Apr 1, 2013 at 2:27 PM, Mauricio Diaz-Lapham
   <[1]MDiaz-Lapham@xxxxxxxxxxx> wrote:

        Hello, Can someone help me! I keep getting this error and I have
     no
        clue as to what is causing it. Below is my code.
        H DFTACTGRP(*NO) BNDDIR('HTTPAPI':'QC2LE')
        d Setup           pr
        d WebService      pr            10i 0
        D Incoming        PR
        d   ProcessJrn                 100A
        D   depth                       10I 0 value
        D   name                      1024A   varying const
        D   path                     24576A   varying const
        D   value                    65535A   varying const
        D   attrs                         *   dim(32767)
        D                                     const options(*varsize)
        d ARWBSRV01       pi
        d  ErrMsg                     1024a   varying

     *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
     *=

     c*==================================================================
     ==
        c* Copybooks

     c*==================================================================
     ==
         /copy config_h
         /copy httpapi_h
        d Soap            s
        32767a
        d ProcessJrn      s            100a
        d ReturnCode      s             10i 0
        d WebSite         s            100a
        D soapfile        s             50a   varying
        dVariableRecords...
        d                 ds                  Qualified
        d Number                        10i 0

     c*==================================================================
     ==
        c* Main

     c*==================================================================
     ==
         /free
             Setup();
        /end-free

     ********************************************************************
     **
        * Main processing - Call the Webservice to update CMA

     ********************************************************************
     **
        /Free
             // Call the web service that will update the client smart
     file.
             ReturnCode = WebService();
             If ReturnCode <> 1;
                ErrMsg = http_error();
                ReturnCode = -1;
             EndIf;
          /end-free

     c*==================================================================
     ==
        c* Setup();
        c*
        c* General setup.

     c*==================================================================
     ==
        p Setup           b
         /free
          VariableRecords.Number = 4; // Number of keys.
          // Turn HTTP debug on or off
          http_debug(*ON);
          // Set the correct CCSID.
          http_setCCSIDs(1208:0);
          // Strip off back end CRLFs on the returned XMLs.
          http_XmlStripCRLF(*ON);
         /end-free
        p Setup           e

     c*==================================================================
     ==
        c* WebService(); Call The Web Service.

     c*==================================================================
     ==
        p WebService      b
        d WebService      pi            10i 0
         /free
           Soap =
           '<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>'
              +' <soapenv:Envelope '
              +  '
     xmlns:soapenv="[2]http://schemas.xmlsoap.org/soap/envelope/"; '
              +  '
     xmlns:upd="[3]http://webservices.vonmaur.vmc/UpdateCMA.asmx";>'
              +   '   <soapenv:Header/>'
              +   '   <soapenv:Body>'
              +   '      <upd:ProcessJournal/>'
              +   '   </soapenv:Body>'
              + '</soapenv:Envelope>';
          // Consume the web service.
          ReturnCode = http_url_post_xml(
            '[4]http://webservices.vonmaur.vmc/UpdateCMA.asmx'
            : %addr(SOAP) + 2
            : %len(SOAP)
            : *NULL
            : %paddr(Incoming)
            : %addr(ProcessJrn)
            :
        HTTP_TIMEOUT
            : HTTP_USERAGENT
            : 'text/xml'
            :
     '[5]http://webservices.vonmaur.vmc/UpdateCMA/ProcessJournal');
          return ReturnCode;
         /end-free
        p WebService      e

     c*==================================================================
     ==
        c* Incoming1();
        c* Parse the XML coming in to see what the client ID we received
     is.

     c*==================================================================
     ==
        p Incoming        B
        d Incoming        PI
        d   ProcessJrn                 100a
        d   depth                       10i 0 value
        d   name                      1024a   varying const
        d   path                     24576a   varying const
        d   value                    65535a   varying const
        d   attrs                         *   dim(32767)
        d                                     const options(*varsize)
        D atof            PR             8F   extproc('atof')
        D   string                        *   value options(*string)
         /free
          if (name = 'ProcessJournal');
           ProcessJrn = value;
          endif;
         /end-free
        p Incoming        E
     --------------------------------------------------------------------
     ---
     This is the FTPAPI mailing list.  To unsubscribe, please go to:
     [6]http://www.scottklement.com/mailman/listinfo/ftpapi
     --------------------------------------------------------------------
     ---

References

   1. mailto:MDiaz-Lapham@xxxxxxxxxxx
   2. http://schemas.xmlsoap.org/soap/envelope/
   3. http://webservices.vonmaur.vmc/UpdateCMA.asmx
   4. http://webservices.vonmaur.vmc/UpdateCMA.asmx
   5. http://webservices.vonmaur.vmc/UpdateCMA/ProcessJournal'
   6. http://www.scottklement.com/mailman/listinfo/ftpapi

------------------------------

Message: 3
Date: Mon, 01 Apr 2013 15:05:16 -0500
From: Scott Klement <sk@xxxxxxxxxxxxxxxx>
To: HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: HTTP/1.1 400 Bad Request
Message-ID: <5159E87C.908@xxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed


I don't see anything obvious in your code that would cause this
problem.   Please generate a debug/trace file so we can see what's going on.

On 4/1/2013 1:27 PM, Mauricio Diaz-Lapham wrote:
>     Hello, Can someone help me! I keep getting this error and I have no
>     clue as to what is causing it. Below is my code.
>
>
>



------------------------------

Message: 4
Date: Mon, 01 Apr 2013 15:15:35 -0500
From: Scott Klement <sk@xxxxxxxxxxxxxxxx>
To: HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: HTTPAPI with CDATA
Message-ID: <5159EAE7.3020002@xxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"

Hello,

The format of the XML you are sending is probably NOT related to the format of the XML you're getting back.  So telling us that you've encoded the XML you're sending to the server properly, does not (at least in my experience) have any impact on what you're getting back.

It's a matter of keeping the "payload" of the SOAP message separate from the XML that makes up the SOAP message itself.

Remember, a web service call is really calling a program/procedure over the web.  The XML documents are used to represent parameters passed either into or out of the routine you're calling.  In this example, the server is sending you an output document.... so it has output
parameters.   Here's a simple example:

<Envelope>
   <Body>
     <document>
       <parm1>any data can go here</parm1>
       <parm2>any data can go here</parm2>
     </document>
   </Body>
</Envelope>

Now suppose you decided to pass an XML document in "parm2".  After all, an XML document is just a character string -- so what if parm2 contains
a whole XML document inside it.   That document would HAVE TO have it's
tags converted to &lt; and &gt;, otherwise it'd interfere with the integrity of the Envelope/Body/document/parm2 tags themselves.

It's important to understand that almost everyone calling a SOAP web service is using SOAP tooling.  They aren't coding the SOAP document by hand like you are doing here -- they actually call a 3rd party program that GENERATES the code.  So from their perspective, they have something
like:

     parm1 = "data";
     parm2 = "whole XML document here";

     call WebService(parm1, parm2);

And, under the covers, the 3rd party tool converts this to the SOAP message.  The data you got back in parm2 would already be removed from the SOAP message and un-escaped.  The caller would never even know that it was escaped during transit, because the 3rd party tool does all of that for them.

But, HTTPAPI doesn't know anything about SOAP... it's not a SOAP tool,
it's purely an HTTP transfer tool (unlike IWS or Thomas's WSDL2RPG).
So HTTPAPI takes a string, and sends it over the network.  It's up to you to format it all correctly, and to handle the data that comes back correctly.  It doesn't know it's SOAP.

As Mike said (and pointed you to examples) when HTTPAPI parses the XML that's sent back, it'll automatically convert the &lt; and &gt; stuff back to the < and > characters, so I don't even see why this is causing you a problem.. it's very simple to deal with.


On 4/1/2013 9:57 AM, Kim Tay wrote:
>     Hi,
>
>     We used the HTTPAPI with CDATA to consume of of the Vendor Web Service,
>     but the response is  returning result tag with &lt; and &gt; instead of
>     < >, I asked the Vendor why and  ithey asked me what tool that I used?
>     I old them simple XML via HTTPAPI from IBM i.  Did I miss out some
>     functions/method? Appreciate if you can advise me.
>
>     Thanks!
>
>     Hereby is my send doc
>
>     SENDDOC): entered
>     <?xml version="1.0" encoding="utf-8"?><soap:Envelope
>     xmlns:soap="[1]http://schemas.xmlsoap.org/soap/envelope/";
>     xmlns:xsi="[2]http://www.w3.org/2001/XMLSchema-instance";
>     xmlns:xsd="[3]http://www.w3.org/2001/XMLSchema";><soap:Body><Audit
>     xmlns="[4]http://tempuri.org/McKessonAudit/Claim";><ClaimIn><![CDATA[<?x
>     ml version="1.0" standalone="yes"?><MIM-UI>  <SYSTEM-DATA>
>     <MIM-OPTIONS>      <DEFINITION-NAME>MIM</DEFINITION-NAME>
>     <UNIT-EXP-PRE-OPT>2</UNIT-EXP-PRE-OPT>
>     <UNIT-EXP-POST-OPT>1</UNIT-EXP-POST-OPT>
>     <MOD-EXP-PRE-OPT>2</MOD-EXP-PRE-OPT>
>     <MOD-EXP-POST-OPT>1</MOD-EXP-POST-OPT>
>     <EXP-PAY-PCT-IND>Y</EXP-PAY-PCT-IND>    </MIM-OPTIONS>
>     <PRODUCT-OPTIONS>      <PRODUCT-NAME>ClaimCheck</PRODUCT-NAME>
>     <CALL-SEQUENCE>0</CALL-SEQUENCE>
>     <CLAIMCHECK-ACCOUNT>GMISDEFAULT</CLAIMCHECK-ACCOUNT>
>     <AGE-REPLACE-IND>Y</AGE-REPLACE-IND
>
>     ...
>
>     ...
>
>     ...
>
>     </MIM-UI>]]></ClaimIn></Audit></soap:Body></soap:Envelope>
>     recvresp(): entered
>     HTTP/1.1 200 OK
>     Cache-Control: private, max-age=0
>     Content-Type: text/xml; charset=utf-8
>     Server: Microsoft-IIS/7.5
>     X-AspNet-Version: 2.0.50727
>     X-Powered-By: [5]ASP.NET
>     Date: Sun, 31 Mar 2013 23:15:46 GMT
>     Content-Length: 14099
>
>     and here is the result;
>
>     RECVDOC
>     SetError() #13: HTTP/1.1 200 OK
>     recvresp(): end with 200
>     recvdoc parms: identity 14099
>     header_load_cookies() entered
>     recvdoc(): entered
>     SetError() #0:
>     <?xml version="1.0" encoding="utf-8"?><soap:Envelope
>     xmlns:soap="[6]http://schemas.xmlsoap.org/soap/envelope/";
>     xmlns:xsi="[7]http://www.w3.org/2001/XMLSchema-instance";
>     xmlns:xsd="[8]http://www.w3.org/2001/XMLSchema";><soap:Body>
>     <AuditResponse
>     xmlns="[9]http://tempuri.org/McKessonAudit/Claim";><AuditResult>
>     &lt;![CDATA[&lt;?xml version="1.0"
>     standalone="yes"?&gt;&lt;MIM-UI&gt;&lt;CLAIM-GROUP&gt;&lt;CLAIM-DATA&gt
>     ;&lt;CLAIM-ID&gt;000140&lt;/CLAIM-ID&gt;&lt;MEMBER-DOB&gt;19540103&lt;/
>     MEMBER-DOB&gt;&lt;MEMBER-GENDER&gt;F&lt;/MEMBER-GENDER&gt;&lt;CLAIM-LAS
>     T-LINE&gt;
>
>     ...
>
>     ...
>
>     ..
>
>     MSG-TEXT&gt;13152 CAN ONLY BE DONE  1 TIME(S) ON SINGLE DATE;
>     DUPLICATE(S)
>     DENIED&lt;/MSG-TEXT&gt;&lt;/MESSAGE-ENTRY&gt;&lt;/MESSAGE-GROUP&gt;&lt;
>     /MIM-UI&gt;
>     ]]&gt;</AuditResult></AuditResponse></soap:Body></soap:Envelope>
>     http_close(): entered
>
> References
>
>     1. http://schemas.xmlsoap.org/soap/envelope/
>     2. http://www.w3.org/2001/XMLSchema-instance
>     3. http://www.w3.org/2001/XMLSchema
>     4. http://tempuri.org/McKessonAudit/Claim
>     5. http://asp.net/
>     6. http://schemas.xmlsoap.org/soap/envelope/
>     7. http://www.w3.org/2001/XMLSchema-instance
>     8. http://www.w3.org/2001/XMLSchema
>     9. http://tempuri.org/McKessonAudit/Claim
>
>
>
> ----------------------------------------------------------------------
> - This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> ----------------------------------------------------------------------
> -

-------------- next part --------------
   Hello,
   The format of the XML you are sending is probably NOT related to the
   format of the XML you're getting back.  So telling us that you've
   encoded the XML you're sending to the server properly, does not (at
   least in my experience) have any impact on what you're getting back.
   It's a matter of keeping the "payload" of the SOAP message separate
   from the XML that makes up the SOAP message itself.
   Remember, a web service call is really calling a program/procedure over
   the web.  The XML documents are used to represent parameters passed
   either into or out of the routine you're calling.  In this example, the
   server is sending you an output document.... so it has output
   parameters.   Here's a simple example:
   <Envelope>
     <Body>
       <document>
         <parm1>any data can go here</parm1>
         <parm2>any data can go here</parm2>
       </document>
     </Body>
   </Envelope>

   Now suppose you decided to pass an XML document in "parm2".  After all,
   an XML document is just a character string -- so what if parm2 contains
   a whole XML document inside it.   That document would HAVE TO have it's
   tags converted to &lt; and &gt;, otherwise it'd interfere with the
   integrity of the Envelope/Body/document/parm2 tags themselves.
   It's important to understand that almost everyone calling a SOAP web
   service is using SOAP tooling.  They aren't coding the SOAP document by
   hand like you are doing here -- they actually call a 3rd party program
   that GENERATES the code.  So from their perspective, they have
   something like:
       parm1 = "data";
       parm2 = "whole XML document here";
       call WebService(parm1, parm2);
   And, under the covers, the 3rd party tool converts this to the SOAP
   message.  The data you got back in parm2 would already be removed from
   the SOAP message and un-escaped.  The caller would never even know that
   it was escaped during transit, because the 3rd party tool does all of
   that for them.
   But, HTTPAPI doesn't know anything about SOAP... it's not a SOAP tool,
   it's purely an HTTP transfer tool (unlike IWS or Thomas's WSDL2RPG).
   So HTTPAPI takes a string, and sends it over the network.  It's up to
   you to format it all correctly, and to handle the data that comes back
   correctly.  It doesn't know it's SOAP.
   As Mike said (and pointed you to examples) when HTTPAPI parses the XML
   that's sent back, it'll automatically convert the &lt; and &gt; stuff
   back to the < and > characters, so I don't even see why this is causing
   you a problem.. it's very simple to deal with.

   On 4/1/2013 9:57 AM, Kim Tay wrote:

   Hi,

   We used the HTTPAPI with CDATA to consume of of the Vendor Web Service,
   but the response is  returning result tag with &lt; and &gt; instead of
   < >, I asked the Vendor why and  ithey asked me what tool that I used?
   I old them simple XML via HTTPAPI from IBM i.  Did I miss out some
   functions/method? Appreciate if you can advise me.

   Thanks!

   Hereby is my send doc

   SENDDOC): entered
   <?xml version="1.0" encoding="utf-8"?><soap:Envelope
   xmlns:soap="[1][1]http://schemas.xmlsoap.org/soap/envelope/";
   xmlns:xsi="[2][2]http://www.w3.org/2001/XMLSchema-instance";
   xmlns:xsd="[3][3]http://www.w3.org/2001/XMLSchema";><soap:Body><Audit
   xmlns="[4][4]http://tempuri.org/McKessonAudit/Claim";><ClaimIn><![CDATA[<?x
   ml version="1.0" standalone="yes"?><MIM-UI>  <SYSTEM-DATA>
   <MIM-OPTIONS>      <DEFINITION-NAME>MIM</DEFINITION-NAME>
   <UNIT-EXP-PRE-OPT>2</UNIT-EXP-PRE-OPT>
   <UNIT-EXP-POST-OPT>1</UNIT-EXP-POST-OPT>
   <MOD-EXP-PRE-OPT>2</MOD-EXP-PRE-OPT>
   <MOD-EXP-POST-OPT>1</MOD-EXP-POST-OPT>
   <EXP-PAY-PCT-IND>Y</EXP-PAY-PCT-IND>    </MIM-OPTIONS>
   <PRODUCT-OPTIONS>      <PRODUCT-NAME>ClaimCheck</PRODUCT-NAME>
   <CALL-SEQUENCE>0</CALL-SEQUENCE>
   <CLAIMCHECK-ACCOUNT>GMISDEFAULT</CLAIMCHECK-ACCOUNT>
   <AGE-REPLACE-IND>Y</AGE-REPLACE-IND

   ...

   ...

   ...

   </MIM-UI>]]></ClaimIn></Audit></soap:Body></soap:Envelope>
   recvresp(): entered
   HTTP/1.1 200 OK
   Cache-Control: private, max-age=0
   Content-Type: text/xml; charset=utf-8
   Server: Microsoft-IIS/7.5
   X-AspNet-Version: 2.0.50727
   X-Powered-By: [5]ASP.NET
   Date: Sun, 31 Mar 2013 23:15:46 GMT
   Content-Length: 14099

   and here is the result;

   RECVDOC
   SetError() #13: HTTP/1.1 200 OK
   recvresp(): end with 200
   recvdoc parms: identity 14099
   header_load_cookies() entered
   recvdoc(): entered
   SetError() #0:
   <?xml version="1.0" encoding="utf-8"?><soap:Envelope
   xmlns:soap="[6][5]http://schemas.xmlsoap.org/soap/envelope/";
   xmlns:xsi="[7][6]http://www.w3.org/2001/XMLSchema-instance";
   xmlns:xsd="[8][7]http://www.w3.org/2001/XMLSchema";><soap:Body>
   <AuditResponse
   xmlns="[9][8]http://tempuri.org/McKessonAudit/Claim";><AuditResult>
   &lt;![CDATA[&lt;?xml version="1.0"
   standalone="yes"?&gt;&lt;MIM-UI&gt;&lt;CLAIM-GROUP&gt;&lt;CLAIM-DATA&gt
   ;&lt;CLAIM-ID&gt;000140&lt;/CLAIM-ID&gt;&lt;MEMBER-DOB&gt;19540103&lt;/
   MEMBER-DOB&gt;&lt;MEMBER-GENDER&gt;F&lt;/MEMBER-GENDER&gt;&lt;CLAIM-LAS
   T-LINE&gt;

   ...

   ...

   ..

   MSG-TEXT&gt;13152 CAN ONLY BE DONE  1 TIME(S) ON SINGLE DATE;
   DUPLICATE(S)
   DENIED&lt;/MSG-TEXT&gt;&lt;/MESSAGE-ENTRY&gt;&lt;/MESSAGE-GROUP&gt;&lt;
   /MIM-UI&gt;
   ]]&gt;</AuditResult></AuditResponse></soap:Body></soap:Envelope>
   http_close(): entered

References

   1. [9]http://schemas.xmlsoap.org/soap/envelope/
   2. [10]http://www.w3.org/2001/XMLSchema-instance
   3. [11]http://www.w3.org/2001/XMLSchema
   4. [12]http://tempuri.org/McKessonAudit/Claim
   5. [13]http://asp.net/
   6. [14]http://schemas.xmlsoap.org/soap/envelope/
   7. [15]http://www.w3.org/2001/XMLSchema-instance
   8. [16]http://www.w3.org/2001/XMLSchema
   9. [17]http://tempuri.org/McKessonAudit/Claim


-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
[18]http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------

References

   1. http://schemas.xmlsoap.org/soap/envelope/
   2. http://www.w3.org/2001/XMLSchema-instance
   3. http://www.w3.org/2001/XMLSchema
   4. http://tempuri.org/McKessonAudit/Claim
   5. http://schemas.xmlsoap.org/soap/envelope/
   6. http://www.w3.org/2001/XMLSchema-instance
   7. http://www.w3.org/2001/XMLSchema
   8. http://tempuri.org/McKessonAudit/Claim
   9. http://schemas.xmlsoap.org/soap/envelope/
  10. http://www.w3.org/2001/XMLSchema-instance
  11. http://www.w3.org/2001/XMLSchema
  12. http://tempuri.org/McKessonAudit/Claim
  13. http://asp.net/
  14. http://schemas.xmlsoap.org/soap/envelope/
  15. http://www.w3.org/2001/XMLSchema-instance
  16. http://www.w3.org/2001/XMLSchema
  17. http://tempuri.org/McKessonAudit/Claim
  18. http://www.scottklement.com/mailman/listinfo/ftpapi

------------------------------

-----------------------------------------------------------------------
This is the FTPAPI mailing list digest.  To unsubscribe, go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------


End of Ftpapi Digest, Vol 78, Issue 3
*************************************
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------