Accesso a una pagina Web protetta da password con Java comporta la creazione di una sottoclasse (AKA classe figlio) della classe Authenticator di Java, che fornisce servizi di web login. La sottoclasse devono contenere solo il getPasswordAuthentication di funzione membro, che fornisce la coppia userid e password necessaria per l'accesso. Tale metodo verrà chiamato automaticamente quando un URL protetto da password viene chiamato dal metodo openStream dell'oggetto URL.
Istruzioni
1
In un IDE (integrated development environment) di Java come NetBeans o Eclipse, è necessario creare un nuovo progetto con un file di origine in un pacchetto denominato \"URLReader.\"
Incollare il seguente codice di programma nel file di origine:
//////////////////////////////
pacchetto URLReader
VAI
importare java.net.
VAI
importazione java.io.
VAI
-sottoclasse Authenticator
-in Main (), chiamare il metodo statico auth'setDefault (sottoclasse)
-in getPasswordAuthentication della sottoclasse, restituire l'oggetto PassAuthentication
public class URLReader {
private myAuth obMyAuth
VAI
public URLReader() {
obMyAuth = new myAuth()
VAI
Authenticator.setDefault(obMyAuth)
VAI
}
public static void main(String[] args) throws Exception {
URLReader ob = new URLReader()
VAI
//open the URL whose content we'll read inBuf
SecureURL URL = nuovo URL (\ "http://www.PASSWORD_PROTECTED_URL.com/PROTECTED_PAGE.htm \ & quot;)
VAI
BufferedReader inBuf = new BufferedReader (
new InputStreamReader (
secureURL.openStream()))
VAI
Stringa strContent
VAI
/ uscita file inish andrà qui /
mentre ((strContent = inBuf.readLine())! = null)
System.out.println(strContent)
VAI
inBuf.close()
VAI
/ codice del file di output finirà qui /
}// end of main
public class myAuth extends Authenticator {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
String sUsername = \"ENTER_YOUR_USERNAME\"
VAI
String sPword = \"ENTER_YOUR_PASSWORD\"
VAI
PasswordAuthentication obPassword = new PasswordAuthentication(sUsername, sPword.toCharArray())
VAI
return obPassword
VAI
}
}//myAuth subclass
} //URL classe del lettore
/////////////////////////////
2
Modificare il codice sorgente per contenere le stringhe relative al progetto: sostituire il codice sorgente che contiene lettere maiuscole - ENTER_YOUR_USERNAME, ENTER_YOUR_PASSWORD, PASSWORD_PROTECTED_URL..--con coppia username/password del vostro progetto e protetto URL.
3
Compilare ed eseguire il progetto e si noti la finestra di output del tuo IDE di ambiente di debug: esso contiene il contenuto dell'URL specificato.
4
Sostituire il codice che scrive il contenuto della pagina web nella console, con codice che restituisce il contenuto di un file: tra i commenti iniziano con \"out file\" nel codice del programma precedente, è necessario sovrascrivere il codice esistente con il seguente:
BufferedWriter outWriter = nuovo BufferedWriter(new FileWriter(\"content.html\"))
VAI
mentre ((strContent = inBuf.readLine())! = null)
System.out.println(strContent)
VAI
outWriter.write(strContent)
VAI
inBuf.close()
VAI
outWriter.close();
5
Ricostruire ed eseguire il progetto, quindi controllare la cartella del progetto per un file chiamato \"content.htm.\" doppio clic sul file per caricarlo nel tuo browser.