Recent

Author Topic: Synapse POST  (Read 6487 times)

Middlecope

  • Jr. Member
  • **
  • Posts: 92
Synapse POST
« on: October 24, 2012, 04:54:22 pm »
I like to get lottery numbers from a website: http://wnk.cc/default.aspx
using the following code:
Code: [Select]
HTTP.ProxyHost := '';
    HTTP.ProxyPort := '';
    HTTP.MimeType := 'application/x-www-form-urlencoded';
    HTTP.HTTPMethod('GET','http://wnk.cc/default.aspx');
    lijst.LoadFromStream(HTTP.Document);
   Get_lottery_numbers; 
It is OK
Down on the page you can chose the second page and firefox shows me the following link:
'javascript:__doPostBack('ctl00$bodyCenterContentPlaceHolder$periodDateGridView','Page$2')
To get page number 2 I wrote the follwing code:
Code: [Select]
   URLData:= 'txtrn=javascript:_doPostBack(''ctl00$bodyCenterContentPlaceHolder$periodDateGridView'',''Page$2'')';
   HTTP.Document.Write(Pointer(URLData)^, Length(URLData));
       HTTP.HTTPMethod('POST','http://wnk.cc/default.aspx');
      lijst.LoadFromStream(HTTP.Document);
   Get_lottery_numbers;       
Unfortunately I get still the first page.
Omitting the "txtrn="  same result.
Suggestions are highly appreciated. Thanks

User137

  • Hero Member
  • *****
  • Posts: 1791
    • Nxpascal home
Re: Synapse POST
« Reply #1 on: October 24, 2012, 05:07:59 pm »
Try:
Code: [Select]
HTTP.Document.Write(URLData[1], Length(URLData));
I mean, string type character data doesn't start from the original pointer. @varString is different than @varString[1] (which is first character).
« Last Edit: October 24, 2012, 05:09:49 pm by User137 »

Middlecope

  • Jr. Member
  • **
  • Posts: 92
Re: Synapse POST
« Reply #2 on: October 24, 2012, 08:44:28 pm »
Unfortunately, that doesn't do the job.
More suggestions?

User137

  • Hero Member
  • *****
  • Posts: 1791
    • Nxpascal home
Re: Synapse POST
« Reply #3 on: October 24, 2012, 10:16:34 pm »
javascript:__doPostBack
you wrote
javascript:_doPostBack

That's all i can see for now  ;)

Middlecope

  • Jr. Member
  • **
  • Posts: 92
Re: Synapse POST
« Reply #4 on: October 24, 2012, 11:57:10 pm »
Thanks
I have corrected the 1 underscore to 2  Same result.
Maybe I have to prefix the URLData with something else then:  txtnr=
Any hint is welcome

BeniBela

  • Hero Member
  • *****
  • Posts: 905
    • homepage
Re: Synapse POST
« Reply #5 on: October 25, 2012, 12:41:50 am »
Well of course that does not work, because it is a javascript function call and not a post data.

The post data is all the value of all the <input> fields on the webpage, i.e.:

Quote
__VIEWSTATE=%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%2BC8wlw9cf9%2FFvK%2Bta&__EVENTVALIDATION=%2FwEWMgLk6%2FjiCgKt%2B%2F%2FfCAKPpvTbCgKOpujbCgKOppTbCgKOpuDbCgKOpuzbCgKOpvjbCgKOpuTbCgKOpvDbCgKOpvzbCgKOpsjbCgKPpsD%2BBQKPptz%2BBQKPptj%2BBQKOpvz%2BBQKOpvj%2BBQKOpvT%2BBQKOpvD%2BBQKOpsz%2BBQKOpsj%2BBQKOpsT%2BBQKOpsD%2BBQKOptz%2BBQKPptSRDAKPpqCSDAKPpqySDAKOpsCRDAKOpsyRDAKOptiRDAKOpsSRDAKOptCRDAKOptyRDAKOpqiSDAKOptSRDAKOpqCSDALqycW6AQLqydG6AQLqyd26AQLpydG6AQLU66jtAwLutvPICQKgo97QAgKYr6u2BwL1nJezBwKFoN%2BzBgKY2NnLDwKz57%2BUCQKz58OUCQKz59eUCUo971DhwuqCYdja8WbdrOVBJTWWUB5Cfh4b8ZP4DPEA&ctl00%24bodyCenterContentPlaceHolder%24todayDateLotteryDraw%24dateHiddenField=23%2F10%2F2012%2018%3A29%3A51&ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView%24ctl02%24dateLotteryDraw%24dateHiddenField=22%2F10%2F2012%200%3A00%3A00&ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView%24ctl03%24dateLotteryDraw%24dateHiddenField=21%2F10%2F2012%200%3A00%3A00&ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView%24ctl04%24dateLotteryDraw%24dateHiddenField=20%2F10%2F2012%200%3A00%3A00&ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView%24ctl05%24dateLotteryDraw%24dateHiddenField=19%2F10%2F2012%200%3A00%3A00&ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView%24ctl06%24dateLotteryDraw%24dateHiddenField=18%2F10%2F2012%200%3A00%3A00&ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView%24ctl07%24dateLotteryDraw%24dateHiddenField=17%2F10%2F2012%200%3A00%3A00&ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView%24ctl08%24dateLotteryDraw%24dateHiddenField=16%2F10%2F2012%200%3A00%3A00&__EVENTTARGET=ctl00%24bodyCenterContentPlaceHolder%24periodDateGridView&__EVENTARGUMENT=Page%242

for the second page and changes probably on every visit...


By the way, with my internet tools, you can get that postdata with a single line:

Code: [Select]
process(page, 'form(//*:form, ''__EVENTTARGET=ctl00$bodyCenterContentPlaceHolder$periodDateGridView&__EVENTARGUMENT=Page$'+inttostr(p)+''').post').toString;

And the entire program, printing all lottery numbers, one table row / line, becomes

Code: [Select]
program adv;

{$mode objfpc}{$H+}

uses Interfaces, simpleinternet, sysutils;

var
  page: String;
  p: Integer;
  x: IXQValue;
  postdata: String;
begin
  page := httpRequest('http://wnk.cc/default.aspx');
  for p := 2 to 5 do begin
    writeln('=========');
    for x in process(page, '//*:table[@id="drawTable"]/*:tr/string-join(*:td, " ")') do
      writeln(x.tostring);
    if p = 5 then exit;
    postdata := process(page, 'form(//*:form, ''__EVENTTARGET=ctl00$bodyCenterContentPlaceHolder$periodDateGridView&__EVENTARGUMENT=Page$'+inttostr(p)+''').post').toString;
    page := httpRequest('http://wnk.cc/default.aspx', postdata);
  end;

end.




(but that is with the unpublished, new interface. The published, old does  not need the *: and .toString, but also does not have the for..in loop, so it would need some ugly class creation)

Middlecope

  • Jr. Member
  • **
  • Posts: 92
Re: Synapse POST
« Reply #6 on: October 25, 2012, 02:40:02 pm »
Dear BeniBela,
From the link I can see that it wants to execute a javascript.
If that is not possible with Synapse I will try out the internettools.zip from your website
Thanks

 

TinyPortal © 2005-2018