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

RE: Formatting an XML request and receiving the XML response



   Hi Scott,
   Sorry, as I've said before, this is new enough to me that I really
   don't know what I'm doing.  Thanks for pointing those items out.  I
   understand what you're telling me and it makes sense, but I'm not sure
   HOW to send the appropriate elements of the URL to the encoder.  I've
   spent some time looking over the httpapi url encoding routines, and
   could really use an example of what you're describing.  I think would
   make much more sense to me if I could see it in code.  If you wouldn't
   mind doing a little spoon-feeding, I'd be grateful, and I'm confident
   I'll be able to pick up on the concept...
   Thanks!
   Rich

   [1]i'm EMAILING FOR THE GREATER GOOD
   Join me

   > Date: Fri, 5 Jun 2009 19:35:07 -0500
   > From: sk@xxxxxxxxxxxxxxxx
   > To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
   > Subject: Re: Formatting an XML request and receiving the XML
   response
   >
   > I've already explained why this isn't working (6 days ago!) please
   read
   > point (b) in the following e-mail message:
   > http://www.scottklement.com/archives/ftpapi/200905/msg00110.html
   >
   > The code that Mike posted was not a valid use of the
   http_url_encoder()
   > routines. He created an encoder, but he never asked it to encode
   anything.
   >
   > Your code is accessing the wrong URL. why? Because the parts of the
   > URL that you wanted encoded AREN'T THERE because you didn't send
   them to
   > the encoder, and therefore it couldn't add them to the URL.
   >
   >
   >
   > Rich Kitterman wrote:
   > > 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
   > >
   ----------------------------------------------------------------------
   -
   >
   >
   ----------------------------------------------------------------------
   -
   > This is the FTPAPI mailing list. To unsubscribe, please go to:
   > http://www.scottklement.com/mailman/listinfo/ftpapi
   >
   ----------------------------------------------------------------------
   -

References

   1. http://im.live.com/Messenger/IM/Home/?source=EML_WLHM_GreaterGood
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------