Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    2

    Recuperare una pagina creata dinamicamente.

    Ho creato un piccolo programmino che in automatico ogni giorno recupera le quotazioni di alcuni fondi da un sito. Il recupero avviene in due fasi. Nella prima fase apro una pagina ne leggo alcuni link di pagine che in effetti contengono le quotazioni e nella seconda fase dovrei aprire le pagine a cui si riferiscono i link e recupero le quotazioni. Il problema sta nel fatto che se faccio in manuale tale operazione in Internet Explorer tutto funziona se lo faccio nel programma scritto in Java aprendo le pagine a cui si riferisce i link ottengo delle pagine vuote.

    La pagina che contiene i link è:

    http://www.xxxxxxxx.com/component/oi...ear_sess&tab=3

    Il link in cui è contenuta la quotazione è :

    http://www.bluerating.com/sessions_g...icrscheda.php?

    E' chiaro che questa seconda pagina è creata in maniera dinamica (in effetti per ogni fondo ottengo lo stesso link alla stessa pagina) ed in Internet Explorer pur linkando allo stesso indirizzo apro sempre una pagina diversa a seconda dell'id=... nell'indirizzo. Vorrei sapere come fare in Java a creare una richiesta di pagina uguale a quella di IE o altro browser che provochi nel server la creazione della pagina dinamica che mi serve.

    Nel mio programma:

    //Apro la pagina che contiene il link:

    indirizzo = "http://www.xxxxxxxx.com/.../schedafondo.html?id=..."
    pagina = new URL(indirizzo);
    conFondo = pagina.openConnection();
    conFondo.connect();
    inFondo = new InputStreamReader(conFondo.getInputStream());
    brFondo = new BufferedReader(inFondo);

    //leggo il file
    lineaFondo=brFondo.readLine();
    ...........

    //Apro il link della quotazione
    indirizzo = "http://www.bluerating.com/sessions_graph/oicrscheda.php?"
    pagina = new URL(indirizzo);
    conQuotazione = pagina.openConnection();
    conQuotazione.connect();
    inQuotazione=new InputStreamReader(conQuotazione.getInputStream());
    brQuotazione = new BufferedReader(inQuotazione);

    //leggo il file
    lineaQuotazione=brQuotazione.readLine();
    //il file esiste ma è vuoto.

    Chiedo scusa in anticipo per le mie gravi lacune. Soprattutto per quanto riguarda HTTP, PHP ecc.. Ho paura di aver fatto una domanda che potrebbe far imbestialire più di uno... Se fosse troppo complicato spiegare in una risposta data la mia eccessiva ignoranza potreste consigliarmi delle fonti da dove cominciare a capire.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    2
    Ok. Mi ripsondo da solo, magari può interessare a qualcuno. Premetto che spiego con parole mie e probabilemente senza usare i termini più corretti.
    Quando si richiede una pagina ad un server viene aperta una sessione. In pratica noi mandiamo la richiesta con un identificativo. Questo identificativo viene poi utilizzato dal server per creare delle pagine dinamiche (non presenti statiche sul server ma create solo nel momento in cui vengono richieste). Se uso due classi URLConnection per chiedere due pagine diverse la richiesta averrà con due Session_Id differenti. Questo può provocare errori come il mio.
    Quindi la procedura per mantenere l'Id è quello di creare la prima URLConnection recuperare il Session_Id e poi utilizzare quell'Id per creare la seconda connessione.

    Per recuperare il session_id bisogna utilizzare:

    String key = urlConnection.getHeaderFieldKey(i);
    String id = urlConnection.getHeaderField(key);
    id = id.substring(0, id.indexOf(";"));

    Quando key è: "set-cookie".


    Per impostarlo nella seconda connection:

    urlConnection.setRequestProperty("Cookie", id);

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 © 2025 vBulletin Solutions, Inc. All rights reserved.