Trying to get html source code (dynamically changing) from URL (does not change) in android? -


so may seem simple question, haven't had luck searching because it's kind of specific.

i have website, use webview, called wv, load via wv.load(url)

on website, there php forms, generate html tables when user interacts (by clicking submit).

since html table generated, source code html table generated, url stays same. newly generated source code has html table in 1 want grab.

please see code below:

 private final string url = "http://google.com";  private webview wv;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);      wv = (webview) findviewbyid(r.id.wvpage);     wv.getsettings().setjavascriptenabled(true);     wv.loadurl(url);      wv.setwebviewclient(new webviewclient()     {         @override         public void onpagefinished(webview view, string url)         {             //view.loadurl(url);             new asyncclass().execute(url);             log.i("asdf", "pagefinished");          }     });  } 

i called execute function everytime form finish loading. tables generated, still dont newly generated source code table. below asyntask implementation: copied post.

@override protected void doinbackground(string... url) {     try     {         httpclient httpclient = new defaulthttpclient(); // create http client         httpget httpget = new httpget(url[0]); // set action want         httpresponse response = httpclient.execute(httpget); // execute         httpentity entity = response.getentity();         inputstream = entity.getcontent(); // create inputstream response         bufferedreader reader = new bufferedreader(new inputstreamreader(is, "iso-8859-1"), 8);         stringbuilder sb = new stringbuilder();         string line = null;         while ((line = reader.readline()) != null)         {             sb.append(line + "\n");             log.i("source code:", line);         }         string resstring = sb.tostring(); // result here         is.close();     }     catch (exception ex){         ex.printstacktrace();         log.i("error", ex.tostring());     }     return null; } 

all want new source code of html table, can move on parsing it. appreciated.

so did little bit more of digging , found solution in thread. did not have use httprequest. need little bit of javascript.

here's link thread helped me.

here's new code.

protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);      wv = (webview) findviewbyid(r.id.wvpage);     wv.getsettings().setjavascriptenabled(true);     wv.addjavascriptinterface(new myjavascriptinterface(), "htmlout");     wv.loadurl(url);      wv.setwebviewclient(new webviewclient()     {         @override         public void onpagefinished(webview view, string url)         {             wv.loadurl("javascript:window.htmlout.processhtml('<head>'+document.getelementsbytagname('html')[0].innerhtml+'</head>');");         }     });  }  class myjavascriptinterface {     @javascriptinterface     @suppresswarnings("unused")     public void processhtml(string html)     {         // process html needed app         string[] lines = html.split("\\n");         (string line : lines)         {             log.i("source code: ", line);         }     } } 

Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -