Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JAVA] - Emulazione browser web

    Salve come da titolo sto cercando di effettuare da codice java alcune operazioni che solitamente si effettuano mediante un WebBrowser.
    Mi scuso da subito nel caso io dica qualche castroneria perchè devo ammettere che la mia esperienza in programamzione di rete lato client è ancora molto limitata. Veniamo al dunque:come esempio sto cercando di connettermi al sito web della Vodafone ed effettuare il login tutto da codice. Per prima cosa ho scritto il codice per connettermi al sito e leggere il body e l'header della risposta ottenuta:


    codice:
     private String connect()
    {
            try
            {
                //connessione
                URL u = new URL("http://www.190.it");
                HttpURLConnection conn = (HttpURLConnection) u.openConnection();
    
                //lettura e stampa body
                InputStream bodyInputStream = conn.getInputStream();
                BufferedReader in = new BufferedReader(new InputStreamReader(bodyInputStream));
                String aLine;
                while((aLine = in.readLine()) != null )
                {
                    System.out.println(aLine);
                }
                
                //lettura e stampa header
                int n = 1; 
                boolean done = false;
                while(!done )
                {
                    String headerKey = conn.getHeaderFieldKey(n);
                    String headerVal = conn.getHeaderField(n);
                    if (headerKey != null || headerVal != null)
                    {
                        System.out.println(headerKey + "=" + headerVal);
                    }
                    else
                    {
                        done = true;
                    }
                    n++;
                }
                
                //lettura e ritorno all'esterno del cookie che mi viene richiesto di salvare
                //per poterlo usar ein future connessioni
                String cookie = conn.getHeaderField("Set-Cookie");
                int index = cookie.indexOf(";");
                if (index >= 0)
                    cookie = cookie.substring(0, index);
                return cookie;
            }
            catch (IOException e)
            {
                e.printStackTrace();
                return null;
            }
      }
    Ora durante una normale connessione col browser scrivendo nella barra degli indirizzi
    http://www.190.it si subisce un redirect alla pagina http://www.190.it/190/trilogy/jsp/ho...bName=HOME+190 (che poi è quella checontiene il form di login).

    Come faccio a eseguire questa cosa da codice, cioè come faccio a connettermi alla nuova url.Premetto che connettermi diretatmente all'url http://www.190.it/190/trilogy/jsp/ho...bName=HOME+190 da un errore che recita pressapoco così dopo qualche secondo d'attesa:
    **************errore******************
    java.net.ProtocolException: Server redirected too many times (20)
    at sun.net.http://www.protocol.http.HttpURLConn...getInputStream(Unknown Source)
    at Send.connect(PostSend.java:85)
    ********************************************

    Il codice sopra fornisce come output il seguente:

    **************body******************
    <HTML>
    <HEAD>
    <LINK REL="SHORTCUT ICON" HREF="/res/img/favicon.ico">
    <META HTTP-EQUIV="refresh" CONTENT="0 ;URL=/190/trilogy/jsp/home.do?BV_UseBVCookie=No&tabName=HOME+190">
    </HEAD>
    <BODY>
    </BODY>
    </HTML>
    ********************************************


    **************header************************
    Date=Fri, 24 Feb 2006 13:59:11 GMT
    Server=Apache/2.0.54 (Unix) DAV/2
    Set-Cookie=SITESERVER=ID=000000000000000000040D8AC3F3A 7EB; path=/; expires=Mon, 22-Feb-16 13:59:11 GMT; domain=.190.it
    Set-Cookie=SITESERVER=ID=000000000000000000040D8AC3F3A 77F; path=/; expires=Mon, 22-Feb-16 13:59:11 GMT; domain=.190.it
    Last-Modified=Fri, 09 Apr 2004 12:35:06 GMT
    ETag="cf-a01b9280"
    Accept-Ranges=bytes
    Content-Length=207
    Vary=Accept-Encoding,User-Agent
    Keep-Alive=timeout=20, max=100
    Connection=Keep-Alive
    Content-Type=text/html; charset=ISO-8859-1

    ********************************************

    In cui come si vede nel body mi viene restituita proprio l'url a cui verrei reindirizzato se fossi un browser.
    Ripeto c'è la consistente possibilità che io abbia detto una marea di fesserie, pertanto cheido un aiuto sulla base di quello che devo fare (cioè fare il login da codice) più che sul codice che ho postato.Grazie
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  2. #2
    up
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    stai cercando di creare un programmino per inviare sms dal sito di 190 senza collegarti al portale? se fosse così sarei interessato al tuo programmino eh eh eh

  4. #4
    Originariamente inviato da energie
    stai cercando di creare un programmino per inviare sms dal sito di 190 senza collegarti al portale? se fosse così sarei interessato al tuo programmino eh eh eh
    Si l'idea è a grandi linee quella anche se non esattamente.Il fatto è che non ho ancora capito come fare a gestire il fatto che il sito mi fa un redirect quindi non è possibile aprire direttamente la pagina con il form, o almeno non ci riesco.
    Comunque si può fare perchè c'è un programma gratuito molto carino che lo fa, te lo segnalo visto che sei interessato: si chiama jacksms.Il problema è che non è ne in java ne open source quindi non posso capire quali sono i passi da seguire.
    Spero qualcuno mi illumini
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    30
    Ciao pure io sto cercando di fare una cosa simile...
    Se per caso hai risolto, oppure sei riuscito a fare il login... potresti postare il codice?
    Io ho la classe per chiedere una pagina alla quale vengono passati parametri tramite POST :master:

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    30
    up!

    Almeno che qualcuno di buona volontà dica come avviene il trasferimento dei cookie...
    Cioè io mi collego inizialmente al sito e lui mi da i cookie e poi sucessivamente ad ogni richiesta di url devo allegare il cookie che mi ha mandato?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.