I want to get data from an web service and after that to display it in a listView. So I made a function that get the data from the service, but when I tested it I discovered something unexpectedly. When I tested it as a call in the main function of the java class, it works, it returns me the data, but when I use it in the listView class, it doesn't. After some debugging, I still don't get why it doesn't work, but I observed that the only difference is that when the function is called in the main function, the URLConnection begins with sun.net.www.protocol.http.Http.URLConnection:http://... and when it's called in the listView class it begins with com.android.okhttp.internal.huc.HttpURLConnectionImpl:http//.. .
public static String getDataFromServer(String url) {
    BufferedReader inputStream = null;
    URL dataUrl = null;
    String data = null;
    //handle url exception
    try {
        dataUrl = new URL(url);
        try {
            URLConnection dc = dataUrl.openConnection();
            dc.setConnectTimeout(5000);
            dc.setReadTimeout(5000);
            try {
                inputStream = new BufferedReader(new InputStreamReader(dc.getInputStream(), "UTF-8"));
            } catch (UnsupportedEncodingException e) { System.out.println(e.getMessage());}
            StringBuffer sb = new StringBuffer();
            String line = "";
            while ((line = inputStream.readLine())!=null)
                sb.append(line + "\r\n");
            data = sb.toString();
        } catch (IOException e) { System.out.println(e.getMessage());
        }
    } catch (MalformedURLException e) { System.out.println(e.getMessage());}
    return data;
}
 
    