c# - Need guidance on creating a post request and getting back a value -


i trying make web service need crawl data from. problem site need data from, in asp gridview has paging in it.. need is, read html, postback page - give me next page of gridview, , new html code (the response) whom can parse , data need...

i tried in many ways solve problem, did not succeed. tell me where/what doing wrong?

code:

[webmethod]     public string enabavki2()     {         webclient client = new webclient();         client.encoding = encoding.utf8;         string htmlcode = client.downloadstring("https://site.com/default.aspx");         string vsk = getbetween(htmlcode, "id=\"__viewstatekey\" value=\"", "\" />");          webrequest request = webrequest.create("https://site.com/default.aspx");          request.contenttype = "application/x-www-form-urlencoded";         request.method = "post";          var webrequest = (httpwebrequest)request;         webrequest.useragent = "mozilla/5.0 (windows nt 6.2; wow64; rv:20.0) gecko/20100101 firefox/20.0"; //googlebot/2.1 (+http://www.googlebot.com/bot.html)         //set form data         string postdata = string.format("__eventtarget={0}" +             "&__eventargument={1}" +              "&__lastfocus={2}"+             "&__viewstatekey={3}"+             "&__viewstate={4}"+             "&__scrollpositionx={5}"+             "&__scrollpositiony={6}"+             "&ctl00$ctl00$cphglobal$cphpublicaccess$publiccftenders$dgpubliccallfortender$ctl13$ddlpageselector={7}",         system.web.httputility.urlencode("ctl00$ctl00$cphglobal$cphpublicaccess$publiccftenders$dgpubliccallfortender$ctl13$ddlpageselector"),             /*1*/string.empty,             /*2*/string.empty,             /*3*/string.empty,//vsk             /*4*/string.empty,             /*5*/"0",             /*6*/"383",             /*7*/"2");         byte[] bytearray = encoding.utf8.getbytes(postdata);          //send form data request stream         request.contentlength = bytearray.length;         stream datastream = request.getrequeststream();         datastream.write(bytearray, 0, bytearray.length);         datastream.close();          var response = request.getresponse();          // stream containing content returned server.         datastream = response.getresponsestream();          streamreader reader = new streamreader(datastream);         string responsefromserver = reader.readtoend();          // clean streams.         reader.close();         datastream.close();         response.close();          return responsefromserver;     } 

ok, few things, in postdata string included every thing find on page send. used fidler this, , (26) arguments gave me. 1 need pageselector (to change value)

also notice there __viewstatekey in html code, gets different value everytime. can see tried first value html (the vsk string), did not change anything..

i sorry, not familiar post/request thing. need project university, please if me solve this....

edit: here prt scr on fidler giving me headers: enter image description here

are there cookies expected web site posting to? check fiddler see if cookies attached post when use site manually.

if so, need cookies received when issue request , attach them second post request. see using cookiecontainer webclient class info on how webclient.


Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -

c# - String.format() DateTime With Arabic culture -