Home > Back-end >  URLConnectionReader produces UnknownHostException
URLConnectionReader produces UnknownHostException

Time:09-17

Thanks in advance for every input!

I'm getting a little familiar with how to read data from websites with Java and have tried to do this by reading data using a URLConnectionReader.

Unfortunately I get an UnknownHostException when I test the whole thing in a Java online compiler (https://www.jdoodle.com/online-java-compiler/).

Have I forgotten any imports? I proceeded according to a tutorial.

Code: (designed for online-java-compiler jdoodle):

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

public class URLConnectionReader {
    
public static void main(String[] args)  
  {  
    String output  = getUrlContents("https://www.tradegate.de/orderbuch_umsaetze.php?isin=NO0010892359");  
    System.out.println(output);  
  }  
  
  private static String getUrlContents(String theUrl)  
  {  
    StringBuilder content = new StringBuilder();  

    try  
    {  
      URL url = new URL(theUrl); 
      URLConnection urlConnection = url.openConnection(); 
  
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));  
      String line;  
    
      while ((line = bufferedReader.readLine()) != null)  
      {  
        content.append(line   "\n");  
      }  
      bufferedReader.close();  
    }  
    catch(Exception e)  
    {  
      e.printStackTrace();  
    }  
    return content.toString();  
  }  
}  

Error message:

java.net.UnknownHostException: www.tradegate.de
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:220)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
    at java.base/java.net.Socket.connect(Socket.java:591)
    at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:285)
    at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
    at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
    at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265)
    at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372)
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
    at URLConnectionReader.getUrlContents(URLConnectionReader.java:21)
    at URLConnectionReader.main(URLConnectionReader.java:8)

CodePudding user response:

What not supported? Network operations are not supported.

https://docs.jdoodle.com/jdoodle-online-compiler-and-ide/untitled-1#what-not-supported

CodePudding user response:

I separated the classes as follows and your code works without any exceptions=>

class Mian:

public class Mian {


public static void main(String[] args) throws ClassNotFoundException {

    URLConnectionReader urlcr = new URLConnectionReader();
    String output = 
    urlcr.getUrlContents("https://www.tradegate.de/orderbuch_umsaetze.php? 
    isin=NO0010892359");
    System.out.println(output);

}

}

and URLConnectionReader class:

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

public class URLConnectionReader {
 

    public String getUrlContents(String theUrl)  
    {  
         StringBuilder content = new StringBuilder();  

        try  
          {  
          URL url = new URL(theUrl); 
          URLConnection urlConnection = url.openConnection(); 

  BufferedReader bufferedReader = new BufferedReader(new 
  InputStreamReader(urlConnection.getInputStream()));  
  String line;  

  while ((line = bufferedReader.readLine()) != null)  
  {  
    content.append(line   "\n");  
  }  
  bufferedReader.close();  
}  
catch(Exception e)  
{  
  e.printStackTrace();  
}  
return content.toString();  
 }  
 }
  • Related