Beim parsen einer Webseite findet sich ein Link dem ich mit einem Java-Client nicht folgen kann, weil er redirected wird. Im Browser macht dieser Link kein Problem - er wird automatisch durch die Redirection ersetzt und dann die entsprechende Seite auch richtig dargestellt. So wird der Link „http://www.onvista.de/aktien/snapshot.html?ID_OSI=36714349“ über „Adidas Aktie (A1EWWW | DE000A1EWWW0) • onvista“ aufgelöst.
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class GetRedirected {
public GetRedirected() throws MalformedURLException, IOException {
String url="http://www.onvista.de/aktien/snapshot.html?ID_OSI=36714349";
URLConnection con = new URL( url ).openConnection();
System.out.println( "orignal url: " + con.getURL() );
con.connect();
System.out.println( "connected url: " + con.getURL() );
InputStream is = con.getInputStream();
System.out.println( "redirected url: " + con.getURL() );
is.close();
}
public static void main(String[] args) throws Exception {
new GetRedirected();
}
}
endet an der Zeile „InputStream is = …“ mit der folgenden Meldung.
orignal url: www.onvista.de/aktien/snapshot.html?ID_OSI=36714349
connected url: www.onvista.de/aktien/snapshot.html?ID_OSI=36714349
Exception in thread „main“ java.io.IOException: Server returned HTTP
response code: 403 for URL: www.onvista.de/aktien/snapshot.html?ID_OSI=36714349
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at de.gombers.broker…
Ich habe es auch mit " (HttpURLConnection) url.openConnection(); und dort mit der Methode „setFollowRedirects(True)“ probiert - ebenfalls ohne Erfolg.
Über einen helfenden Hinweis würde ich mich sehr freuen. Neben den beiden erwähnten Herangehensweisen habe ich im Netz bisher nicht gefunden.