Sessioni in java

di il
3 risposte

Sessioni in java

Ciao a tutti, son nuovo nel forum e arrivo già a chiedere aiuto

Sto cercando di scaricare dei file da un sito.
Ho scritto un programma che fa automaticamente questo lavoro, però ora il sito richiede una registrazione per scaricare i contenuti.

Pensavo di simulare l'invio di una sessione tramite java (utilizzerei quella scaricata sul mio computer dal browser senza andare a fare il login tramite il mio programma e scaricare la nuova sessione da li) ma non so come fare

Vi scrivo un estratto modificato del programma (pulito, senza neanche i tentativi di login), spero mi possiate aiutare o indicare qualche "guida"!


import java.io.*;
import java.net.*;

public class Mprog {


public static void main(String[] args) throws IOException, InterruptedException {

	    	String path="G:/";
			String nomeFile="pippo.txt";
			String url="www.myurl.it";
	    	if(args.length!=0)
	    		path=args[0];

	        String userAgent = "Opera/9.63 (Windows NT 5.1; U; en) Presto/2.1.1";
	        BufferedReader fBR = new BufferedReader(new FileReader(file));
	    
	    		//DOWNLOAD
		        try {
		            System.out.println("Downloading \""+nomeFile+"\" ...");
		            downloadFromUrl(new URL(url), nomeFile, userAgent, path);
		            System.out.println("OK");
		            System.out.println("- Scaricato "+nomeFile);
      
		        } catch (Exception e) {
		            System.out.println("Nessun file trovato");     
		        }

}



public static void downloadFromUrl(URL url, String localFilename, String userAgent, String path)
    throws IOException {
        InputStream is = null;
        FileOutputStream fos = null;

        try {
            URLConnection urlConn = url.openConnection();

            if (userAgent != null) {
                urlConn.setRequestProperty("User-Agent", userAgent);
            }

            is = urlConn.getInputStream();
            fos = new FileOutputStream(path+localFilename);

            byte[] buffer = new byte[4096];
            int len;

            while ((len = is.read(buffer)) > 0) {
                fos.write(buffer, 0, len);
            }
        } finally {
            try {
                if (is != null) {
                    is.close();
                }
            } finally {
                if (fos != null) {
                    fos.close();
                }
            }
        }
    }


}
Grazie mille

3 Risposte

  • Re: Sessioni in java

    Ciao parli di inviare le sessioni... la sessione riguarda il lato server.
    Quello che devi fare è inviare i cookies di sessione in modo che il server riconosca il client con sui ha instaurato la sessione.
  • Re: Sessioni in java

    Si, scusa, intendevo quello.. come faccio a inviare un cookie?
  • Re: Sessioni in java

    Ciao! ho visto che hai usato le classi offerte dal package java.net . Personalmente non le ho mai usate quindi non conosco un modo per ottenere i cookies.

    Ti consiglio, comunque, di dare un'occhiata alle librerie apache HttpComponents in quanto contengono metodi semplici per ottenere/inserire facilmente dei cookies.
Devi accedere o registrarti per scrivere nel forum
3 risposte