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

RE: Formatting an XML request and receiving the XML response



Rich, I think the actual request is missing. It is obvious that in my last attempt I was playing with but not succeeding with encoding the call. I will take a look at it this weekend and see if I can finish that up.

Mike Krebs

> -----Original Message-----
> From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:ftpapi-
> bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Rich Kitterman
> Sent: Friday, June 05, 2009 2:58 PM
> To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: Formatting an XML request and receiving the XML response
> 
> 
> Hi Mike,
> 
> I used your example program, substituting my userid, and have been
> getting "403 Forbidden" errors when I try to run it.  The following
> debug list shows that the USPS server thinks I'm trying to request a
> directory listing, which I'm not.  I tried sending the URL through a
> browser and got errors as well, but once I replaced the blanks with
> "%20" it ran without a problem.  I'm not certain what I'm doing wrong
> on the i, but could use a little clarification...
> 
>  ************Beginning of data**************
> HTTPAPI Ver 1.23 released 2008-04-24
> OS/400 Ver V5R1M0
> 
> New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819. ProtLoc=0
> http_url_get(): entered
> http_persist_open(): entered
> http_long_ParseURL(): entered
> DNS resolver retrans: 2
> DNS resolver retry  : 2
> DNS resolver options: x'00000136'
> DNS default domain: S105VX7M.COM
> DNS server found: 205.171.2.65
> DNS server found: 205.171.3.65
> http_persist_get(): entered
> http_long_ParseURL(): entered
> do_get(): entered
> GET / HTTP/1.1
> Host: testing.shippingapis.com
> User-Agent: http-api/1.23
> 
> recvresp(): entered
> HTTP/1.1 403 Forbidden
> Content-Length: 218
> Content-Type: text/html
> Server: Microsoft-IIS/6.0
> X-Powered-By: ASP.NET
> Date: Fri, 05 Jun 2009 19:38:28 GMT
> 
> SetError() #13: HTTP/1.1 403 Forbidden
> recvdoc parms: identity 218
> header_load_cookies() entered
> recvdoc(): entered
> SetError() #0:
> <html><head><title>Error</title></head><body><head><title>Directory
> Listing Denied</title></head> <body><h1>Directory Listing
> Denied</h1>This Virtual Directory does not allow contents to be
> listed.</body></body></html>
> SetError() #13: HTTP/1.1 403 Forbidden
> http_close(): entered
> 
> Thanks!
> 
> Rich
> 
> > From: richardkitterman@xxxxxxxxxxx
> > To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: RE: Formatting an XML request and receiving the XML response
> > Date: Mon, 1 Jun 2009 13:08:17 -0600
> >
> >
> > Hi Mike,
> >
> > Thanks very much for this, it's a great help to me.
> >
> > Mike, remembering that I'm a complete novice at this - what would you
> recommend to correct the encoding issues you pointed out?
> >
> > I really appreciate this - without the help I've been getting, it
> would take me much longer to get up to speed with this.
> >
> > I will likely have more questions for either of you or both, if
> that's ok...
> >
> > Thanks!
> >
> > Rich
> >
> >
> >
> >  EMAILING FOR THE GREATER GOOD
> > Join me
> >
> > > Date: Fri, 29 May 2009 16:34:04 -0500
> > > From: sk@xxxxxxxxxxxxxxxx
> > > To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: Re: Formatting an XML request and receiving the XML
> response
> > >
> > > Hi Mike,
> > >
> > > You're making two mistakes in your encoding:
> > >
> > > a) You aren't encoding the data to make it a valid XML document.
> As
> > > soon as you get an address with a < or & symbol, your XML document
> will
> > > be invalid.
> > >
> > > b) You aren't using the URL encoder properly.  You've created an
> > > encoder, but you didn't ask it to encode anything.   The URL itself
> > > contains all of the data, but if there's any characters that are
> invalid
> > > in a URL (that includes blanks, &, =, /, etc) the HTTP protocol is
> going
> > > to choke on it.
> > >
> > >
> > >
> > > Mike Krebs wrote:
> > > > Rich, I played with this app a while back (USPS address
> verification). Here was my test program. I didn't parse the result but
> look at EXAMPLE15 for how to handle that part.
> > > >
> > > > Mike Krebs
> > > >
> > > >
> > > > H DFTACTGRP(*NO) ACTGRP(*NEW) BNDDIR('LIBHTTP/HTTPAPI')
> > > >
> > > > D/copy libhttp/qrpglesrc,httpapi_h
> > > >
> > > > D rc              s             10I 0
> > > > D msg             s             52A
> > > >
> > > > d USPSUserID      s             12a    inz('your user id')
> > > > d address1        s             38a    inz(*blanks)
> > > > d address2        s             38a    inz('6406 Ivy Lane')
> > > > d city            s             15a    inz('Greenbelt')
> > > > d state           s              2a    inz('MD')
> > > > d zip5            s              5a    inz(*blanks)
> > > > d zip4            s              4a    inz(*blanks)
> > > >
> > > > d Enc             s                    like(HTTP_URL_ENCODER)
> > > > d url             s          32767a    varying
> > > > d urlValues       s          32767a    varying
> > > >
> > > > C* retrieve the ILE RPG/400 refernece manual from IBM:
> > > >
> > > > c                   eval      urlValues =
> > > > c                             'ShippingAPItest.dll?API=Verify'+
> > > > c                             'ShippingAPItest.dll?API=Verify'+
> > > > c                             '&XML=<AddressValidateRequest '+
> > > > c                             'USERID="' + %trim(USPSUserID) +
> '">'
> > > > c                             '<Address ID="0">'+
> > > > c                             '<Address1>' + %trim(Address1) +
> > > > c                                  '</Address1>' +
> > > > c                             '<Address2>' + %trim(Address2) +
> > > > c                                  '</Address2>' +
> > > > c                             '<City>' + %trim(City) +
> > > > c                                  '</City>' +
> > > > c                             '<State>' + %trim(State) +
> > > > c                                  '</State>' +
> > > > c                             '<Zip5>' + %trim(Zip5) +
> > > > c                                  '</Zip5>' +
> > > > c                             '<Zip4>' + %trim(Zip4) +
> > > > c                                  '</Zip4>' +
> > > > c
> '</Address></AddressValidateRequest>'
> > > > c                   eval      url       =
> > > > c                             'http://testing.shippingapis.com/'
> > > >
> > > > c                   eval      Enc = http_url_encoder_new()
> > > > c                   eval      rc = http_url_get(url +
> > > > c                              http_url_encoder_getstr(Enc):
> > > > c                             '/tmp/address_valid.txt')
> > > > c                   if        rc <> 1
> > > > c                   eval      msg = http_error
> > > > c                   dsply                   msg
> > > > c                   endif
> > > >
> > > > c                   callp     http_url_encoder_free(Enc)
> > > >
> > > > c                   eval      *inlr = *on
> > > > ****************** End of data *****
> > > > -----------------------------------------------------------------
> ------
> > > > 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
> > > -------------------------------------------------------------------
> ----
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------