Hallo zusammen,
ich möchte gerne den Quellcode der Seite
https://www.leo.org/englisch-deutsch
auslesen, dazu habe ich folgenden Code
public Connector(String surl) {
try {
url = new URL(surl);
is = url.openStream();
scan = new Scanner(is);
while(scan.hasNextLine()) {
System.out.println(scan.nextLine());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Dann kommt folgende Fehlermeldung:
java.io.IOException: Server returned HTTP response code: 403 for URL: https://www.leo.org/englisch-deutsch/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at de.html.connection.Connector.<init>(Connector.java:24)
at de.html.GUI.actionPerformed(GUI.java:57)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Dies konnte ich bereits beheben mit folgendem Code:
public Connector(String surl) {
try {
url = new URL(surl);
con = url.openConnection();
con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0");
is = con.getInputStream();
scan = new Scanner(is);
while(scan.hasNextLine()) {
System.out.println(scan.nextLine());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Es funktioniert also alles super. Wenn ich nun aber z.B.
https://dict.leo.org/englisch-deutsch/Hallo
aufrufe, kommt folgende Meldung, die mit dieser Zeile beginnt:
Ihr Browser ist veraltet, daher kann es zu Einschränkungen in der Funktionalität kommen.</p><p><small>Die reine Wörterbuchsuche wird im InternetExplorer in Version 8 und 9 noch unterstützt (ohne Gewähr auf funktionierende Zusatzdienste wie Aussprache, Flexionstabellen etc.). Siehe dazu auch die offizielle Ankündigung durch <a href="https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support">Microsoft</a> zum Support-Ende der verschiedenen InternetExplorer-Versionen.</small></p></span></div></div><![endif]--><!--[if lte IE 7]><div id="browser-support-none" class=""><div title="" class="alert section bg-red "><span><i role="img" class="icon icon_alert-octagon icon_size_24 white "> </i></span><span>Bitte aktualisieren Sie Ihren Browser - Ihr Browser wird nicht mehr unterstützt.</span></div></div><![endif]--><noscript><div title="" class="alert m-bottom-medium bg-blue "><span><i role="img" class="icon icon_information icon_size_24 darkgray "> </i></span><span>Aktivieren Sie JavaScript für mehr Features und höhere Geschwindigkeit beim Abfragen.
Nun ist meine Frage, wieso diese Meldung kommt und wie ich sie beheben kann. Meines Wissens nach ist der User-Agent der Neuste!?
Ich hoffe auf schnelle Antworten
Lg Moritz
ich möchte gerne den Quellcode der Seite
https://www.leo.org/englisch-deutsch
auslesen, dazu habe ich folgenden Code
public Connector(String surl) {
try {
url = new URL(surl);
is = url.openStream();
scan = new Scanner(is);
while(scan.hasNextLine()) {
System.out.println(scan.nextLine());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Dann kommt folgende Fehlermeldung:
java.io.IOException: Server returned HTTP response code: 403 for URL: https://www.leo.org/englisch-deutsch/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at de.html.connection.Connector.<init>(Connector.java:24)
at de.html.GUI.actionPerformed(GUI.java:57)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Dies konnte ich bereits beheben mit folgendem Code:
public Connector(String surl) {
try {
url = new URL(surl);
con = url.openConnection();
con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0");
is = con.getInputStream();
scan = new Scanner(is);
while(scan.hasNextLine()) {
System.out.println(scan.nextLine());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Es funktioniert also alles super. Wenn ich nun aber z.B.
https://dict.leo.org/englisch-deutsch/Hallo
aufrufe, kommt folgende Meldung, die mit dieser Zeile beginnt:
Ihr Browser ist veraltet, daher kann es zu Einschränkungen in der Funktionalität kommen.</p><p><small>Die reine Wörterbuchsuche wird im InternetExplorer in Version 8 und 9 noch unterstützt (ohne Gewähr auf funktionierende Zusatzdienste wie Aussprache, Flexionstabellen etc.). Siehe dazu auch die offizielle Ankündigung durch <a href="https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support">Microsoft</a> zum Support-Ende der verschiedenen InternetExplorer-Versionen.</small></p></span></div></div><![endif]--><!--[if lte IE 7]><div id="browser-support-none" class=""><div title="" class="alert section bg-red "><span><i role="img" class="icon icon_alert-octagon icon_size_24 white "> </i></span><span>Bitte aktualisieren Sie Ihren Browser - Ihr Browser wird nicht mehr unterstützt.</span></div></div><![endif]--><noscript><div title="" class="alert m-bottom-medium bg-blue "><span><i role="img" class="icon icon_information icon_size_24 darkgray "> </i></span><span>Aktivieren Sie JavaScript für mehr Features und höhere Geschwindigkeit beim Abfragen.
Nun ist meine Frage, wieso diese Meldung kommt und wie ich sie beheben kann. Meines Wissens nach ist der User-Agent der Neuste!?
Ich hoffe auf schnelle Antworten
Lg Moritz