G
Guest
Gast
Hallo,
ich habe eine Klasse, die unteranderem auch eine Methode zum Herunterladen einer Webpage darstellt. Dies sollte auch mit passwortgeschützten Seiten funktionieren, weshalb im Konstruktor eine Authentiticator Instanz angelegt wird. Leider wirdklappt das nicht so recht, die Funktion innerhalb der Authenticator Klasse, die gegebenenfalls das Passwort zurückgeben sollte, wird auch im Bedarfsfall nie aufgerufen. Weiß jemand genauer, wie das funktionieren könnte?
Sun hat das ganze hier dokumentiert: http://java.sun.com/javase/6/docs/technotes/guides/net/http-auth.html
Wenn alles in der main Methode steht, klappt es auch. Irgendwie geht wohl meine Instanz verloren...
Gruß und Dank schonmal.
ich habe eine Klasse, die unteranderem auch eine Methode zum Herunterladen einer Webpage darstellt. Dies sollte auch mit passwortgeschützten Seiten funktionieren, weshalb im Konstruktor eine Authentiticator Instanz angelegt wird. Leider wirdklappt das nicht so recht, die Funktion innerhalb der Authenticator Klasse, die gegebenenfalls das Passwort zurückgeben sollte, wird auch im Bedarfsfall nie aufgerufen. Weiß jemand genauer, wie das funktionieren könnte?
Sun hat das ganze hier dokumentiert: http://java.sun.com/javase/6/docs/technotes/guides/net/http-auth.html
Wenn alles in der main Methode steht, klappt es auch. Irgendwie geht wohl meine Instanz verloren...
Code:
public class BlaBla {
static class MyAuth extends Authenticator {
private static String username;
private static String password;
public MyAuth(String username, String password) {
MyAuth.username = username;
MyAuth.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(MyAuth.username, MyAuth.password
.toCharArray());
}
}
private URL url;
private String content = null;
public Page(String url) {
Authenticator.setDefault(new MyAuth("xxx", "yyy"));
this.setUrl(url);
}
private void receiveContent() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(
this.url.openStream()));
String temp;
StringBuilder strb = new StringBuilder();
while ((temp = in.readLine()) != null) {
strb.append(temp);
}
this.content = strb.toString();
in.close();
} catch (IOException e) {
System.err.println("IO Exception");
this.content = null;
}
}
[...]
Gruß und Dank schonmal.