[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: automated login to webpage and read resulting web page
The most recent and correct version to use is found at the following link;
http://www.scottklement.com/httpapi/beta
Do not be put out due to the beta title, it is the nmost stable and current
version available.
Loek.
----- Original Message -----
From: <tim.dclinc@xxxxxxxxx>
To: "HTTPAPI and FTPAPI Projects" <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, April 02, 2012 4:53 PM
Subject: Re: automated login to webpage and read resulting web page
> Thanks for the info Scott,
>
> I dont seem to have what i need. I cant find WEBFORM_open(). I guess i
> have an older version of the http api.
>
> can you tell me where i can download the most current that would include
> the "webform" logic?
>
>
>
> On 3/30/2012 6:44 PM, Scott Klement wrote:
>> hi Tim,
>>
>> On 3/30/2012 4:59 PM, tim.dclinc@xxxxxxxxx wrote:
>>> I am looking to write an rpg program to log into a page on our server
>>> and read the resulting page content. I have attached the login screen
>>> html.
>> I don't understand why you're looking at the UPS Tracking example
>> (EXAMPLE16 in older versions of HTTPAPI) since that calls a web service
>> not a web page. Seems completely unrelated to me.
>>
>> As far as I can tell from your HTML, it's just asking you to submit a
>> really simple form to the server. Just create a form with the fields
>> you see in the HTML, and send it to the server.
>>
>> Most of the junk in the HTML you posted is telling a browser how to
>> display the data on the screen. The only useful parts are these:
>>
>> <FORM action="/cgi-bin/kmwwrkml" method="POST">
>> <INPUT type="hidden" name="kaction" value="Sign In">
>> <INPUT type="text" name="kmbox" maxlength="10">
>> <INPUT type="password" name="kpswrd" maxlength="20">
>> <INPUT type="submit" value="Sign In">
>> </FORM>
>>
>> There's also a Javascript in the HTML, but all it does is verify that
>> the fields in the form aren't blank before you submit them, so you can
>> omit that Javascript without any consequence. So the above code is the
>> only part of the screen that does anything -- everything else is just
>> "how to display stuff on screen"
>>
>> The above form tells me:
>>
>> 1) The data is submitted to the /cgi-bin/kmwwrkml program on the server.
>> 2) The POST method is to be used to submit it.
>> 3) The form has 3 fields named kaction, kmbox, kpswrd
>> 4) kaction is a hidden variable always set to 'Sign In'
>> 5) kmbox (mailbox) can be up to 10 chars long.
>> 6) kpswrd (password) can be up to 20 chars long.
>> 7) The submit button does not have a 'name', so no value will be
>> submitted for it.
>>
>> So all you have to do is code the same form in your RPG program... This
>> is off the top of my head (I don't have access to a server with a screen
>> like this, so I can't possibly test it)
>>
>>
>> H DFTACTGRP(*NO) BNDDIR('HTTPAPI')
>>
>> /define WEBFORMS
>> /copy httpapi_h
>>
>> D kmbox s 10a
>> D kpswrd s 20a
>>
>> D form s like(WEBFORM)
>> D rc s 10i 0
>> D encodedForm s *
>> D encodedLen s 10i 0
>>
>> D QCMDEXC PR ExtPgm('QCMDEXC')
>> D cmd 200a const
>> D len 15p 5 const
>> D igc 3a const options(*nopass)
>>
>> /free
>> kmbox = 'Mailbox here';
>> kpswrd = 'password here';
>>
>> // Build a web form that mimics the sign-in screen:
>>
>> Form = WEBFORM_open();
>> WEBFORM_setVar(form: 'kaction': 'Sign In');
>> WEBFORM_setVar(form: 'kmbox' : kmbox );
>> WEBFORM_setVar(form: 'kpswrd' : kpswrd );
>>
>> WEBFORM_postData( form
>> : encodedForm
>> : encodedLen );
>>
>> // Send to the server via the POST method
>>
>> rc = http_post( 'http://example.com/cgi-bin/kmwwrkml'
>> : encodedForm
>> : encodedLen
>> : '/tmp/result.html' );
>>
>> WEBFORM_close(form);
>>
>> if (rc<> 1);
>> http_crash();
>> endif;
>>
>> // Display the data that was sent back
>> // then end program
>>
>> QCMDEXC('DSPF ''/tmp/result.html''': 200);
>> *inlr = *on;
>> /end-free
>>
>> This is more similar to EXAMPLE2 (in old versions of HTTPAPI, or
>> EXAMPLE4 in the current version) than it is to the UPS tracking example.
>>
>> Hopefully you understand what I'm saying... you need to understand how
>> the HTML works and what the browser will do with it so you can write RPG
>> code that does the same thing.
>> -----------------------------------------------------------------------
>> 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
-----------------------------------------------------------------------