Autore Topic: download pagina web  (Letto 3206 volte)

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
download pagina web
« il: 07 Febbraio 2013, 19:46:11 CET »
0
so che esistono molti topic a riguardo ma il mio problema e molto particolare
io riesco a scaricare la pagina web usando il seguente codice
Codice (Java): [Seleziona]
        String test="";
                try {
                 HttpClient client = new DefaultHttpClient();
                 HttpGet request = new HttpGet(url);
                 HttpResponse response = client.execute(request);
                 String e=EntityUtils.toString(response.getEntity());
                 //operazioni varie sulla pagina
                } catch (IOException e) {
                        test="errore";
                }
il problema e che lui non scarica l'intera pagina ma scarica solo una parte della pagina arrivando fino a circa 28000 caratteri dopo il resto non la scarica..solo che cosi io non riesco a parsare il contenuto e l'applicazione mi va in errore..ho provato anche altri codici java ma il problema e sempre lo stesso..volevo quindi chiedere se è un errore solo mio oppure se devo settare qualcosa per evitare il problema..ovviamente l'applicazione io la testo su un huawei u8150 anche chiamato ideos

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:download pagina web
« Risposta #1 il: 07 Febbraio 2013, 21:43:54 CET »
+1
Prova facendo invece così:

Codice (Java): [Seleziona]
  URL urlObj = null;
  URLConnection uc = null;
  BufferedReader in = null;
  String test = "";
  try {
    // open a connection to the url
    urlObj = new URL(url);
    uc = urlObj.openConnection();

    // read connection content
    in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null)
      test += inputLine;
    in.close();
  }
  catch (Exception e) {
    e.printStackTrace();
    test = "errore";
  }

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:download pagina web
« Risposta #2 il: 08 Febbraio 2013, 09:42:31 CET »
0
neanche con quella funzione...ecco il risultato se io provo a scaricare la pagina di google
Citazione
<!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"><head><meta content="width=device-width,minimum-scale=1.0" name="viewport"><meta itemprop="image" content="/images/google_favicon_128.png"><title>Google</title><script>(function(){window.google={kEI:"AboUUaXPJYmAtQaFiYCYCA",getEI:function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI},https:function(){return"https:"==window.location.protocol},kEXPI:"17259,39523,4000116,4001569,4001948,4001959,4001975,4002001,4002160,4002436,4002562,4002734,4002854,4002858,4002928,4003053,4003076,4003320,4003335,4003371,4003374,4003489,4003575,4003606,4003691,4003722,4003835,4003913,4004015",kCSI:{e:"17259,39523,4000116,4001569,4001948,4001959,4001975,4002001,4002160,4002436,4002562,4002734,4002854,4002858,4002928,4003053,4003076,4003320,4003335,4003371,4003374,4003489,4003575,4003606,4003691,4003722,4003835,4003913,4004015",ei:"AboUUaXPJYmAtQaFiYCYCA"},authuser:0,ml:function(){},pageState:"#",kHL:"it",time:function(){return(new Date).getTime()},log:function(a,b,c,i){var d=new Image,f=google.lc,e=google.li,g="";d.onerror=d.onload=d.onabort=function(){delete f[e]};f[e]=d;!c&&-1==b.search("&ei=")&&(g="&ei="+google.getEI(i));c=c||"/gen_204?atyp=i&ct="+a+"&cad="+b+g+"&zx="+google.time();a=/^http:/i;a.test(c)&&google.https()?(google.ml(Error("GLMM"),!1,{src:c}),delete f[e]):(d.src=c,google.li=e+1)},lc:[],li:0,j:{en:1,l:function(){google.fl=!0},e:function(){google.fl=!0},b:!!location.hash&&!!location.hash.match("[#&]((q|fp)=|tbs=simg|tbs=sbi)"),bv:21,cf:"",pm:"p",pl:[],mc:0,sc:0.5,u:"c9c918f0"},Toolbelt:{},y:{},x:function(a,b){google.y[a.id]=[a,b];return!1},load:function(a,b){google.x({id:"l"+a},function(){google.load(a,b)})}};window.onpopstate=function(){google.j.psc=1};for(var h="ad api bc is p pa ac pc pah ph sa sifp slp spf spn xx zc zz".split(" "),j=0,k;k=h[j++];)(function(a){google.j[a]=function(){google.j.pl.push([a,arguments])}})(k);window.chrome||(window.chrome={}),window.chrome.sv=2.00,window.chrome.searchBox||(window.chrome.searchBox={}),window.chrome.searchBox.onsubmit=function(){google.x({id:"psyapi"},function(){var a=encodeURIComponent(window.chrome.searchBox.value);google.nav.search({q:a,sourceid:"chrome-psyapi2"})})};})();(function(){var d=!1;google.sn="webhp";google.timers={};google.startTick=function(a,b){google.timers[a]={t:{start:google.time()},bfr:!!b}};google.tick=function(a,b,h){google.timers[a]||google.startTick(a);google.timers[a].t=h||google.time()};google.startTick("load",!0);try{}catch(e){}})();(function(){'use strict';var d=null,j=this;var l="undefined"!=typeof navigator&&/Macintosh/.test(navigator.userAgent);var q="undefined"!=typeof navigator&&/iPhone|iPad|iPod/.test(navigator.userAgent),r=/\s*;\s*/,t=function(g){var b=s;if(!b.h.hasOwnProperty(g)){var n,K=b.i;n=function(c){var a;a:{a=g;"click"==a&&(l&&c.metaKey||!l&&c.ctrlKey)&&(a="clickmod");for(var u=c.srcElement||c.target,e=u;e&&e!=this;e=e.parentNode){var F=e,v,h=F;v=a;var p=h.__jsaction;if(!p){p={};K&&(h.__jsaction=p);var i=void 0,i=d;"getAttribute"in h&&(i=h.getAttribute("jsaction"));if(i)for(var h=i.split(r),i=0,n=h?h.length:0;i<n;i++){var k=h;if(k){var f=k.indexOf(":"),m=-1!=f,w=m?k.substr(0,f).replace(/^\s+/,"").replace(/\s+$/,""):"click",k=m?k.substr(f+1).replace(/^\s+/,"").replace(/\s+$/,""):k;p[w]=k}}}if(v=p[v]){a={eventType:a,event:c,targetElement:u,action:v,actionElement:F};break a}}a=d}a&&(c.stopPropagation?c.stopPropagation():c.cancelBubble=!0,"A"==a.actionElement.tagName&&"click"==g&&(c.preventDefault?c.preventDefault():c.returnValue=!1),b.d?b.d(a):(u=a,c=(e=j.document)&&!e.createEvent&&e.createEventObject?e.createEventObject(c):c,u.event=c,b.c.push(a)))};var f;f=function(c){var a=g,b=n,e=!1;if(c.addEventListener){if("focus"==a||"blur"==a)e=!0;c.addEventListener(a,b,e)}else if(c.attachEvent){"focus"==a?a="focusin":"blur"==a&&(a="focusout");var f=b,b=function(a){a||(a=window.event);return f.call(c,a)};c.attachEvent("on"+a,b)}return{k:a,m:b,capture:e}};b.h[g]=n;b.g.push(f);for(var m=0;m<b.a.length;++m){var w=b.a[m];w.c.push(f.call(d,w.a))}}},y=function(){this.a=x;this.c=[]};var s=new function(){this.i=!0;this.g=[];this.a=[];this.h={};this.d=d;this.c=[]},z=s,x=window.document.documentElement,A;a:{for(var B=0;B<z.a.length;B++){for(var C=z.a.a,D=x;C!=D&&D.parentNode;)D=D.parentNode;if(C==D){A=!0;break a}}A=!1}if(!A){q&&(x.style.cursor="pointer");for(var E=new y,G=0;G<z.g.length;++G)E.c.push(z.g[G].call(d,E.a));z.a.push(E)}t("click");t("focus");t("focusin");t("blur");t("focusout");t("change");t("keydown");t("keypress");t("mousedown");t("mouseout");t("mouseover");t("mouseup");t("touchstart");t("touchmove");t("touchend");var H=function(g){var b=s;b.d=g;b.c&&(0<b.c.length&&g(b.c),b.c=d)},I=["google","jsad"],J=j;!(I[0]in J)&&J.execScript&&J.execScript("var "+I[0]);for(var L;I.length&&(L=I.shift());)!I.length&&void 0!==H?J[L]=H:J=J[L]?J[L]:J[L]={};}).call(window);google.arwt=function(a){a.href=document.getElementById(a.id.substring(1)).href;return!0};</script><style>#gb{font:13px/27px Arial,sans-serif;height:30px}#gbz,#gbg{position:absolute;white-space:nowrap;top:0;height:30px;z-index:1000}#gbz{left:0;padding-left:4px}#gbg{right:0;padding-right:5px}#gbs{background:transparent;position:absolute;top:-999px;visibility:hidden;z-index:998}.gbto #gbs{background:#fff}#gbx3,#gbx4{background-color:#2d2d2d;background-image:none;_background-image:none;background-position:0 -138px;background-repeat:repeat-x;border-bottom:1px solid #000;font-size:24px;height:29px;_height:30px;opacity:1;filter:alpha(opacity=100);position:absolute;top:0;width:100%;z-index:990}#gbx3{left:0}#gbx4{right:0}#gbb{position:relative}#gbbw{left:0;position:absolute;top:30px;width:100%}.gbtcb{position:absolute;visibility:hidden}#gbz .gbtcb{right:0}#gbg .gbtcb{left:0}.gbxx{display:none !important}.gbxo{opacity:0 !important;filter:alpha(opacity=0) !important}.gbm{position:absolute;z-index:999;top:-999px;visibility:hidden;text-align:left;border:1px solid #bebebe;background:#fff;-moz-box-shadow:-1px 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2);box-shadow:0 2px 4px rgba(0,0,0,.2)}.gbrtl .gbm{-moz-box-shadow:1px 1px 1px rgba(0,0,0,.2)}.gbto .gbm,.gbto #gbs{top:29px;visibility:visible}#gbz .gbm,#gbz #gbs{left:0}#gbg .gbm,#gbg #gbs{right:0}.gbxms{background-color:#ccc;display:block;position:absolute;z-index:1;top:-1px;left:-2px;right:-2px;bottom:-2px;opacity:.4;-moz-border-radius:3px;filter:progid:DXImageTransform.Microsoft.Blur(pixelradius=5);*opacity:1;*top:-2px;*left:-5px;*right:5px;*bottom:4px;-ms-filter:"progid:DXImageTransform.Microsoft.Blur(pixelradius=5)";opacity:1\0/;top:-4px\0/;left:-6px\0/;right:5px\0/;bottom:4px\0/}.gbma{position:relative;top:-1px;border-style:solid dashed dashed;border-color:transparent;border-top-color:#c0c0c0;display:-moz-inline-box;display:inline-block;font-size:0;height:0;line-height:0;width:0;border-width:3px 3px 0;padding-top:1px;left:4px}#gbztms1,#gbi4m1,#gbi4s,#gbi4t{zoom:1}.gbtc,.gbmc,.gbmcc{display:block;list-style:none;margin:0;padding:0}.gbmc{background:#fff;padding:10px 0;position:relative;z-index:2;zoom:1}.gbt{position:relative;display:-moz-inline-box;display:inline-block;line-height:27px;padding:0;vertical-align:top}.gbt{*display:inline}.gbto{box-shadow:0 2px 4px rgba(0,0,0,.2);-moz-box-shadow:0 2px 4px rgba(0,0,0,.2);-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2)}.gbzt,.gbgt{cursor:pointer;display:block;text-decoration:none !important}span#gbg6,span#gbg4{cursor:default}.gbts{border-left:1px solid transparent;border-right:1px solid transparent;display:block;*display:inline-block;padding:0 5px;position:relative;z-index:1000}.gbts{*display:inline}.gbzt .gbts{display:inline;zoom:1}.gbto .gbts{background:#fff;border-color:#bebebe;color:#36c;padding-bottom:1px;padding-top:2px}.gbz0l .gbts{color:#fff;font-weight:bold}.gbtsa{padding-right:9px}#gbz .gbzt,#gbz .gbgt,#gbg .gbgt{color:#ccc!important}.gbtb2{display:block;border-top:2px solid transparent}.gbto .gbzt .gbtb2,.gbto .gbgt .gbtb2{border-top-width:0}.gbtb .gbts{background:url(//ssl.gstatic.com/gb/images/b_8d5afc09.png);_background:url(//ssl.gstatic.com/gb/images/b8_3615d64d.png);background-position:-27px -22px;border:0;font-size:0;padding:29px 0 0;*padding:27px 0 0;width:1px}.gbzt-hvr,.gbzt:focus,.gbgt-hvr,.gbgt:focus{background-color:#4c4c4c;background-image:none;_background-image:none;background-position:0 -102px;background-repeat:repeat-x;outline:none;text-decoration:none !important}.gbpdjs .gbto .gbm{min-width:99%}.gbz0l .gbtb2{border-top-color:#dd4b39!important}#gbi4s,#gbi4s1{font-weight:bold}#gbg6.gbgt-hvr,#gbg6.gbgt:focus{background-color:transparent;background-image:none}.gbg4a{font-size:0;line-height:0}.gbg4a .gbts{padding:27px 5px 0;*padding:25px 5px 0}.gbto .gbg4a .gbts{padding:29px 5px 1px;*padding:27px 5px 1px}#gbi4i,#gbi4id{left:5px;border:0;height:24px;position:absolute;top:1px;width:24px}.gbto #gbi4i,.gbto #gbi4id{top:3px}.gbi4p{display:block;width:24px}#gbi4id{background-position:-44px -101px}#gbmpid{background-position:0 0}#gbmpi,#gbmpid{border:none;display:inline-block;height:48px;width:48px}#gbmpiw{display:inline-block;line-height:9px;padding-left:20px;margin-top:10px;position:relative}#gbmpi,#gbmpid,#gbmpiw{*display:inline}#gbg5{font-size:0}#gbgs5{padding:5px !important}.gbto #gbgs5{padding:7px 5px 6px !important}#gbi5{background:url(//ssl.gstatic.com/gb/images/b_8d5afc09.png);_background:url(//ssl.gstatic.com/gb/images/b8_3615d64d.png);background-position:0 0;display:block;font-size:0;height:17px;width:16px}.gbto #gbi5{background-position:-6px -22px}.gbn .gbmt,.gbn .gbmt:visited,.gbnd .gbmt,.gbnd .gbmt:visited{color:#dd8e27 !important}.gbf .gbmt,.gbf .gbmt:visited{color:#900 !important}.gbmt,.gbml1,.gbmlb,.gbmt:visited,.gbml1:visited,.gbmlb:visited{color:#36c !important;text-decoration:none !important}.gbmt,.gbmt:visited{display:block}.gbml1,.gbmlb,.gbml1:visited,.gbmlb:visited{display:inline-block;margin:0 10px}.gbml1,.gbml...

come si nota alla fine ci sono tre puntini e non scarica piu niente..non la scarica del tutto quindi

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:download pagina web
« Risposta #3 il: 08 Febbraio 2013, 09:44:49 CET »
+1
neanche con quella funzione...ecco il risultato se io provo a scaricare la pagina di google
come si nota alla fine ci sono tre puntini e non scarica piu niente..non la scarica del tutto quindi
...
I tre puntini vuol dire solo che c'è altro contenuto che l'IDE non ti mostra per motivi di puro spazio disponibile.
Se provi a scrivere su un file o in console la pagina che hai letto vedrai che è completa.

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:download pagina web
« Risposta #4 il: 08 Febbraio 2013, 10:36:22 CET »
0
ok grazie...ho riprovato cambiando anche i tag su cui parso e ora funziona...ide che non mostrano tutto il contenuto.. :D

Offline skylong

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    S3
Re:download pagina web
« Risposta #5 il: 06 Marzo 2013, 22:04:45 CET »
0
Prova facendo invece così:

Codice (Java): [Seleziona]
  URL urlObj = null;
  URLConnection uc = null;
  BufferedReader in = null;
  String test = "";
  try {
    // open a connection to the url
    urlObj = new URL(url);
    uc = urlObj.openConnection();

    // read connection content
    in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null)
      test += inputLine;
    in.close();
  }
  catch (Exception e) {
    e.printStackTrace();
    test = "errore";
  }

Ho provato questo codice  per recuperare dei dati da una mia pagina web ma va sempre in test=errore...
ovviamente nel manifest ho aggiunto
Codice (Java): [Seleziona]
<uses-permission android:name="android.permission.INTERNET" />

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
R: download pagina web
« Risposta #6 il: 06 Marzo 2013, 23:30:25 CET »
0
Ok, ma l'eccezione che da qual'è?

Offline skylong

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    S3
Re:R: download pagina web
« Risposta #7 il: 06 Marzo 2013, 23:52:48 CET »
0
Ok, ma l'eccezione che da qual'è?

L'accesso a internet??c***ata vero??

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:download pagina web
« Risposta #8 il: 07 Marzo 2013, 08:19:11 CET »
0
Sarà un UnknowHostException  :-)
I numeri contano molto di più del seme.

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:download pagina web
« Risposta #9 il: 07 Marzo 2013, 08:32:42 CET »
0
Sarà un UnknowHostException  :-)
Probabile, a saperlo...
Certo è un'operazione così complicata allegare il logcat... siamo proprio dei cattivoni noi che lo chiediamo sempre  :-P

Offline skylong

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    S3
Re:download pagina web
« Risposta #10 il: 07 Marzo 2013, 13:20:21 CET »
0
Probabile, a saperlo...
Certo è un'operazione così complicata allegare il logcat... siamo proprio dei cattivoni noi che lo chiediamo sempre  :-P
ops...avete ragione...chiedo venia :)
come errore mi da "android.os.NetworkOnMainThreadException"

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:download pagina web
« Risposta #11 il: 07 Marzo 2013, 13:23:54 CET »
0
Fai la richiesta in un thread separato:

Codice (Java): [Seleziona]
new Thread() {
               
                        @Override
                public void run() {
                       
                    // tuo codice di richiesta
                       
                }
               
        }.start();
I numeri contano molto di più del seme.

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:download pagina web
« Risposta #12 il: 07 Marzo 2013, 19:53:45 CET »
0
ops...avete ragione...chiedo venia :)
come errore mi da "android.os.NetworkOnMainThreadException"

Questo errore indica che stai effettuando una chiamata alla rete nel thread principale.
Non puoi effettuare questo tipo di operazioni direttamente nell'activity.
Questo evita di avere una videata completamente ferma, dal momento che l'operazione sarebbe sincrona.

Devi utilizzare come ti è già stato suggerito un altro thread, un async task o un service.

Offline skylong

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    S3
Re:download pagina web
« Risposta #13 il: 08 Marzo 2013, 00:05:17 CET »
0
Fai la richiesta in un thread separato:

Codice (Java): [Seleziona]
new Thread() {
               
                        @Override
                public void run() {
                       
                    // tuo codice di richiesta
                       
                }
               
        }.start();

ehm mi potreste spiegare come fare??ho provato a cercare guide su internet ma non ho ben capito come fare...

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:download pagina web
« Risposta #14 il: 08 Marzo 2013, 09:20:36 CET »
0
Sposta tutto il tuo codice in cui scarichi la pagina web dentro in metodo run() del Thread.
I numeri contano molto di più del seme.