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

RE: consuming web service with large base64 encoded value of embedded XML



Thanks for the response. My approach was basically as you described and  I have been able to successfully decode a smaller data field, translate it to EBCDIC and parse the XML.  
Our system I is at v6r1. 
 I was having a hard time telling if the problem was that I wasn't getting all of the data when I read the stream file or if  the problem was the decoding the data.  I guess at this point my question is what is the maximum size that I can read from a stream file and the maximum size that I can send to the decoding procedure?
Thanks again - 
Frances

-----Original Message-----
From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Thomas Raddatz
Sent: Sunday, October 27, 2013 9:05 AM
To: HTTPAPI and FTPAPI Projects
Subject: Re: consuming web service with large base64 encoded value of embedded XML

Frances,

What release do you have on your System i and what specific problems do you have to process the Base64 encoded data?

It is hard to help you without knowing your environment but basically you can:

a) Use Scott Klements Base64 Encoder/Decoder to decode the Base64 data.

       lenDecoded = base64_decode(pInpData: inpSize: pOutData: outSize)

b) Use my modified version of Scott's Encoder/Decoder which lets you also decode the data to a stream file:

       lenDecoded = base64_decodeBufferToStream(
                          ptrInpData: inpSize: writeFD: pWrite)

pInpData   = Pointer to Base64 encoded input data
inpSize    = size of input data
pOutData   = Pointer to decoded output data
outSize    = maximum size of output buffer
lenDecoded = actual size of decoded output data
writeFD    = file descriptor of stream file
              Sample: fd = open('pathName': ...)
pWrite     = procedure pointer of 'write' procedure
              Sample: %paddr('write')

It may also be required to translate the decoded data if the original CCSID is different from your local CCSID. Maybe it is worth to read my FAQ "How to Send Base64 Encoded Passwords". It describes when and why character translation is required.

http://tools400.de/Downloads/Freeware/Tools/FAQ/wsdl2rpg/FAQ_How_to_Send_Base64_Encoded_Passwords_v1.0.pdf

Thomas.

Am 24.10.2013 21:51, schrieb Frances Knott:
>     I am accessing a web service and the response is an XML response with a
>     large (49000 character) data field that contains XML that is base64
>     encoded.
>
>
>     At this point, I am able to receive the response into a file in the
>     IFS, but I'm having problems processing that large data field.
>
>     This is the beginning portion of the response:
>
>
>     <service-response><service-id>XMLRating</service-id>
>
>     <request-id>0000100</request-id>
>
>     <status><code>SUCCESS</code>
>
>     <message>XML Rating
>     Successful</message>
>
>     </status>
>
>     <error/><data>PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxSYXRlUmVzdWx0cz4KPFN0YXR1c
>     0NvZGU+MDwvU3RhdHVzQ29kZT4KPFN0YXR1c01lc3NhZ2U+UmF0aW5nIHByb2
>
>     1vZGVsPSJOT1JNQUxJWkVEX1NNQyIgaXNTZWxlY3RlZD0iZmFsc2UiIGlzQWxsb2NhdGVkP
>     SJmYWxzZSIgY3VycmVuY3lDb2RlPSJVU0QiIGNyZWF0ZURhdGU9IjEwLzI0Lz
>
>     43MjwvVG90YWw+CjxOb3JtYWxpemVkVG90YWwgY3VycmVuY3lDb2RlPSJVU0QiPjk4LjcyP
>     C9Ob3JtYWxpemVkVG90YWw+CjxDb250cmFjdElkPigyMzY2NzU4NDAwMywzMD
>
>     k8L0NhcnJpZXJJZD4KPENhcnJpZXJOYW1lPkFCRiBGcmVpZ2h0IFN5c3RlbSwgSW5jPC9DY
>     XJyaWVyTmFtZT4KPFNDQUM+QUJGUzwvU0NBQz4KPE1vZGU+TFRMPC9Nb2RlPg
>
>     w+MzIuNTQ8L0FjY2Vzc29yaWFsVG90YWw+CjxTdWJUb3RhbD44MC4wMDwvU3ViVG90YWw+C
>     jxUb3RhbD4xMTIuNTQ8L1RvdGFsPgo8Tm9ybWFsaXplZFRvdGFsIGN1cnJlbm
>
>     1heD4KPElzTm9udGF4YWJsZT5mYWxzZTwvSXNOb250YXhhYmxlPgo8L0NoYXJnZT4KPC9Da
>     GFyZ2VzPgo8Q29tbWVudHMvPjwvUHJpY2VTaGVldD4KPFByaWNlU2hlZXQgdH
>
>     RpQ29kZT4KPEFtb3VudD44Ljk4PC9BbW91bnQ+CjxSYXRlPjE0LjAwPC9SYXRlPgo8UmF0Z
>     VF1YWxpZmllcj5QQ1Q8L1JhdGVRdWFsaWZpZXI+CjxRdWFudGl0eT42NC4xNz
>
>     JlaWdodENsYXNzPjAuMDwvRmFrRnJlaWdodENsYXNzPgo8SXNNaW4+ZmFsc2U8L0lzTWluP
>     go8SXNNYXg+ZmFsc2U8L0lzTWF4Pgo8SXNOb250YXhhYmxlPmZhbHNlPC9Jc0
>
>
>     I've reviewed the example programs in libhttp and tried several things
>     without success.  Can anyone point me in the right direction to process
>     this data?
>
>
>
>     Thanks in advance for your help
>
>     J+J Flooring Group
>
>     Frances Knott - Sr. Business Systems Analyst
>     p: 706.529.2100 x8384
>     [1]www.jj-invision.com
>     [2]www.jj-kinetex.com
>     J+J Flooring Group
>     818 J&J Drive
>     PO Box 1287
>     Dalton, GA 30722
>
>     Invision | Kinetex
>
>     This e-mail and any files transmitted with it are confidential and
>     intended solely for the use of the individual or entity to whom they
>     are addressed. If you are not the intended recipient, please notify the
>     sender immediately. J+J Flooring Group does not provide or endorse
>     opinions, conclusions or other information in this message that do not
>     relate to the official business of the company.
>
> References
>
>     1. http://www.jj-invision.com/
>     2. http://www.jj-kinetex.com/
>
>
>
> ----------------------------------------------------------------------
> - This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> ----------------------------------------------------------------------
> -
>

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