android - Sending data needed to see hidden content from website -


recently trying make app concerns specific website. need have access page has visible content after logging. if understand, below code shows firstly need connect url1 avoid default mainpage here cannot send data (login, password). need see content url3, here cannot send data because there no login , password field. in url2. tried other solutions website, receive content visible everyone. can help?

private class parser extends asynctask<void, void, void> {     string h;     string url1 = "http://www.klt.net.pl/";     string url2 = "http://www.klt.net.pl/index.php?a=logowanie";     string url3 = "http://www.klt.net.pl/index.php?a=przedmecz1&b=2&d=2038";      @override     protected void onpreexecute() {         super.onpreexecute();         pd = new progressdialog(mainactivity.this);         pd.settitle("parser");         pd.setmessage("loading...");         pd.setindeterminate(false);         pd.show();     }      @override     protected void doinbackground(void... params) {         try {             connection.response response = jsoup.connect(url1)             .method(connection.method.get)             .timeout(50000)             .followredirects(true)             .execute();         document document = jsoup.connect(url2)             .cookies(response.cookies())             .get();          } catch (ioexception e) {             e.printstacktrace();         }         return null;     }      @override     protected void onpostexecute(void result) {         pd.dismiss();     } } 

edit:

@override protected void doinbackground(void... params) {     try {         connection.response response = jsoup.connect(url1)         .method(connection.method.get)         .timeout(50000)         .followredirects(true)         .execute();          connection.response loginres = jsoup.connect(url2)         .useragent("mozilla/5.0 (macintosh; intel mac os x 10_10_5) applewebkit/537.36 (khtml, gecko) chrome/44.0.2403.157 safari/537.36")         .data("login", getlog2,         "haslo", getpass2)         .cookies(response.cookies())          .method(method.post)         .execute();          map<string, string> cookies = new map<string, string>();         cookies.addall(loginres.cookies());          connection.response otherres = jsoup.connect(url3)         .cookies(cookies)         .method(method.post)         .execute();          d3 = jsoup.connect(url3)         .cookies(otherres.cookies())         .get(); 

my updated code. ok? have error in map (cannot instatiate type , cannot resolved type).

to login need know data post (id, password, session cookie , etc...), , url address need post to.

this information contained in login form, i'll explain steps required below:

step 1: id , password need enter login should inputs of form. right-click area type in id , select inspect element (assuming on chrome). there able inspect property of inputs , form.

step 2: closely investigate form , keep record of all input fields (including hidden fields). need know name , value of fields. need know if form request made in get or post , action value form.

step 3: let's fun part. use following code snippet make request server , retrieve desired content.

connection.response loginres = jsoup.connect(loginurl)                                .useragent("mozilla/5.0 (macintosh; intel mac os x 10_10_5) applewebkit/537.36 (khtml, gecko) chrome/44.0.2403.157 safari/537.36"                                .data("login", yourid                                      "haslo", yourpassword)                                .cookies(response.cookies()) //this same cookie used url2!                                .method(method.post)                                .execute(); 
  • loginurl request address, in case "http://www.klt.net.pl/index.php?a=logowanie".
  • useragent tells server browser details.
  • data put name&value pairs of input fields in form.
  • cookies put cookies, need check if request requires cookies accepted server, can checked in network tab under "cookies" section. in case, same cookie used url2.
  • method specifies request method.

the retrieved loginres object contain info need, html, cookies , everything.

after you've logged in, make sure store cookie value in map object below:

map<string, string> cookies; cookies.putall(loginres.cookies()); 

and make sure pass cookies cookies parameter in future requests, below:

connection.response otherres = jsoup.connect(otherurl).cookies(cookies).... 

this ensure login session maintained , server knows authenticated user.

----------------update------------

declare map cookie beginning of doinbackground task. store all cookies after make every request. so:

cookies = response.cookies(); cookies.putall(loginres.cookies(); cookies.putall(otherres.cookies(); 

Comments