java - VIEWSTATE value in the HttpPost -


here case, want post website, before must retrieve viewstate value , make post using value, problem viewstate value changing every time make posts, little confused how can use it's value in second post if value on server different. there solution or doing wrong?

main httppost

    try {         httpclient client = new defaulthttpclient();          httppost request = new httppost(                 "www.website.com/login.aspx");          string viewstate = getviewstate(client, request,                 "www.website.com/login.aspx");          system.out.println(viewstate);          request.getparams().setbooleanparameter(                 coreprotocolpnames.use_expect_continue, false);         request.setheader("content-type", "text/html; charset=utf-8");          list<namevaluepair> postparameters = new arraylist<namevaluepair>();          postparameters.add(new basicnamevaluepair("__viewstate",                 viewstate))         postparameters.add(new basicnamevaluepair("__eventtarget", ""));         postparameters.add(new basicnamevaluepair("__eventargument", ""));         postparameters.add(new basicnamevaluepair("ctl00$tbusername",                 "name"));         postparameters                 .add(new basicnamevaluepair("ctl00$tbpwd", "psw"));          postparameters.add(new basicnamevaluepair("ctl00$chkrememberlogin",                 "0"));         postparameters                 .add(new basicnamevaluepair("ctl00$cmdlogin", "login"));          urlencodedformentity formentity = new urlencodedformentity(                 postparameters);         request.setentity(formentity);         httpresponse response = client.execute(request);          string responsebody2 = entityutils.tostring(response.getentity());         system.out.println(responsebody2);          }         // print page wap         // system.out.println(responsebody2);     } 

and send httpget

    string html = "";     try {          url url1 = new url("www.website.com/login.aspx");         urlconnection conn = url1.openconnection();          // response         bufferedreader rd = new bufferedreader(new inputstreamreader(                 conn.getinputstream()));         stringbuffer sb = new stringbuffer();         string line;         while ((line = rd.readline()) != null) {             sb.append(line+"\n");         }         rd.close();         html = sb.tostring();     } catch (exception e) {         e.printstacktrace();     }      return findviewstate(html); 

so thinking, maybe should reuse same httpclient cookies or anything, next request same page...

if recall correctly viewstate values encrypted default , have information in them prevent tampering, therefore, multiple requests result in different values. if request, make post page user should ok, need make sure data goes or going hit issues asp.net's event validation.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

android - layout with fragment and framelayout replaced by another fragment and framelayout -