[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Help with a simple call to http_url_post_raw
Hello Everyone,
Thanks for helping me with the USPS call...
I'm learning as I go here. What I'm trying to do now is use the
http_url_post_raw procedure.
I'm getting an "rc" of 1 back after the call, but we don't see our
message show up in the ActiveMQ queue.
Here's the code I'm running. One question I have right away is, I see
others have posted a log file from HTTPAPI. I haven't had any luck
finding this log file in my IFS. Does anyone know where I might locate
that log? I would love to see the log, because when I run debug
through all of the services in HTTPAPI (and the others), it's not fast
enough to meet the timeout default of 60 seconds.
1) Do I need to encode the URL like I'm doing below?
Here's the code I'm running. Any help is greatly appreciated. Thanks!
     H DFTACTGRP(*NO) ACTGRP(*NEW) BNDDIR('LIBHTTP/HTTPAPI')
     D/copy qrpglesrc,httpapi_h
     D Incoming        PR            10I 0
     D   descriptor                  10I 0 value
     D   data                      8192A   options(*varsize)
     D   datalen                     10I 0 value
     d Enc             s                    like(HTTP_URL_ENCODER)
     d url             s          32767a    varying
     d urlValues       s          32767a    varying
     d addressRequest  s          32767a    varying
     d bigString       s          32767a    varying
     D rc              s             10I 0
     D rc2             s               N
     D msg             s             52A
     D data            S          32767A   varying
     D retdata         S          32766A
     D retlen          S             10I 0
     D nextpos         S             10I 0 inz(1)
      /free
       http_debug(*on);
       url = 'http://10.179.120.77:8161/demo/message/Ec3pl-850-OutboundOrders/';
       data = '10015 West';
       //Encode the url string.
       Enc = http_url_encoder_new();
       rc2 = http_url_encoder_addvar( Enc:
           'body':
           %addr(data) + 2:
           %len(data));
       bigString = http_url_encoder_getstr(Enc);
       urlValues = 'type=queue&' + bigString;
       //Post the request.
       rc = http_url_post_raw(url + urlValues:
                              %addr(data):
                              %len(%trimr(data)):
                              1:
                              %paddr('INCOMING'));
       if rc <> 1;
         msg = http_error;
         dsply msg;
         //return;
       else;
         if retlen > 1;
           callp http_xlate(retlen: retdata: TO_EBCDIC);
         endif;
       endif;
       //Free the memory allocated to the encoded URL.
       http_url_encoder_free(Enc);
       *inlr = *on;
       return;
      /end-free
     P*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P*  this procedure will receive the raw data received from UPS
     P*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P Incoming        B
     D Incoming        PI            10I 0
     D   descriptor                  10I 0 value
     D   data                      8192A   options(*varsize)
     D   datalen                     10I 0 value
     C* Make sure we don't overflow the string:
     c                   eval      retlen = (nextpos + datalen) - 1
     c                   if        retlen > %size(retdata)
     c                   eval      datalen=datalen-(retlen-%size(retdata))
     c                   endif
     C* If there is nothing to write, return THAT...
     c                   if        datalen < 1
     c                   return    0
     c                   endif
     C* Here we add any data sent to the end of our 'retdata' string:
     c                   eval      %subst(retdata: nextpos) =
     c                                %subst(data:1:datalen)
     c                   eval      nextpos = nextpos + datalen
     c* We always return the amount of data that we wrote.   Note
     C*  that if http-api sees that we didn't write as much data as
     C*  it sent us, it'll abort the process with an error message.
     c                   return    datalen
     P                 E
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------