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

Re: Problem with HTTPS POST REQUEST



I think you're including the POST statement in the data. Here's what
my post looks like:

rc = http_url_post_raw(
         'https://www.somedomain.com/someapps/someprocess'
             : %Addr(Data)
             : %Len(%TrimR(Data))
             : 1
             : %Paddr('INCOMING'));

And my Data winds up looking like this when I send it:

<?xml version="1.0" ?><theinquiry><DOCUMENTID>001</DOCUMENTID>

Note that the Data would be pretty large - there's a bunch of stuff in there.

So my suggestion would be to not have the POST in the data.

What error message (if any) is being returned? Do you see the
connection being made in NETSTAT?

On 1/24/07, Bruno Souche <Bruno.Souche@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
>    Hi all,
>
>    I m posting this message and i hope to find some help within the
>    LIBHTTP communauty.
>
>    My problem is quite simple. My customer must send an HTTPS
>    POST REQUEST to UPS for shipping. UPS give us the PLD format of such a
>    message and, to be honst, i don t know how to send th e request.
>
>    I send you the whole code of my app, based on the LIBHTTP HTTPS POST
>    example. I change the data to make the message, but i m sure that
>    something goes wrong. As i put some informations in the data area,
>    which must be in wrapper (Content-Type, Content-Length). but i find
>    nothin (but i m still working on it :p) in the tutorial to make
>    headers for HTTP request :(
>
>    Do you have any ideas?
>
>    Thanks in advance for comments.
>
>    Bruno
>
>
>    H DFTACTGRP(*NO) ACTGRP(*NEW) BNDDIR('HTTPAPI')
>
>    D /copy qrpglesrc,httpapi_h
>
>    D cmd pr extpgm('QCMDEXC')
>
>    D command 200 A const
>
>    D length 15 P 5 const
>
>    D rc s 10 I 0
>
>    D msg s 52 A
>
>    D CRLF C CONST(x'0d25')
>
>    D data S 4096 A varying
>
>    D long S 10 0
>
>    c eval *inlr = *on
>
>    /free
>
>    data = 'POST /hapld/tos/kdwhapltos HTTP/1.1'+CRLF;
>
>    data = data + 'Host: www.pld-certify.ups.com'+CRLF;
>
>    data = data + 'Content-type: multipart/mixed; boundary=BOUNDARY'+CRLF;
>
>    data = data + 'Content-length: 1040'+CRLF+CRLF;
>
>    data = data + '--BOUNDARY'+CRLF;
>
>    data = data + 'Content-type: application/x-www-form-urlencoded'+CRLF;
>
>    data = data + 'Content-length: 140'+CRLF+CRLF;
>
>    data = data + 'AppVersion=1.0&AcceptUPSLicenseAgreement=Yes&';
>
>    data = data + 'ResponseType=application/x-ups-pld&VersionNumber=';
>
>    data = data + 'V4R1&UserId=useridvalue&Password=passwordvalue'+CRLF;
>
>    data = data +CRLF;
>
>    data = data + '--BOUNDARY'+CRLF;
>
>    data = data + 'Content-type: application/x-ups-binary'+CRLF;
>
>    data = data + 'Content-length: 719'+CRLF+CRLF;
>
>    data = data + '020094 2.0 ';
>
>    data = data + '2007021700000000000010500 000000001*AA0A1754 US';
>
>    data = data + '1234567002000001*BA1z1234560100002352';
>
>    data = data + ' 00001+0000000000000010 +000';
>
>    data = data + '0000000000000LBS01PRE10';
>
>    data = data + ' 3INUSD000001';
>
>    data = data + '*CA18ATTENTION';
>
>    data = data + 'DELIVERY ';
>
>    data = data = '234 SOME LOCAL ST';
>
>    data=data+' ';
>
>    data = data + ' ';
>
>    data = data + 'SOME CITY NJ ';
>
>    data = data + '07652 US12015551212';
>
>    data = data + ' ';
>
>    data = data + '*PA1z1234560100002352';
>
>    data = data + ' 02+0000010';
>
>    data=data+' ';
>
>    data = data + ' ';
>
>    data = data + '+0000010 ';
>
>    data = data + '*SA000004'+CRLF+CRLF;
>
>    data = data + '--BOUNDARY--'+CRLF;
>
>    /end-free
>
>    C ** The only diff between using HTTPS and using HTTP is
>
>    C ** the URL that we pass. It starts with 'https://'
>
>    C eval long = %len(data)
>
>    C long DSPLY
>
>    c eval rc=http_url_post(
>
>    c 'https://www.pld-certify.ups.com/':
>
>    c * 'hapld/tos/kdwhapltos':
>
>    c %addr(data): %len(%trimr(data)):
>
>    c '/tmp/httptest.html')
>
>    c if rc <> 1
>
>    c eval msg = http_error
>
>    c dsply msg
>
>    c return
>
>    c endif
>
>    ** This should be the XML data that UPS returns to us:
>
>    c callp cmd('DSPF ''/tmp/httptest.html''': 200)
>
>    c return
> -----------------------------------------------------------------------
> 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
-----------------------------------------------------------------------