Получение данных из интернета - PullRequest
0 голосов
/ 01 апреля 2020

Я просто следую некоторому курсу, и я все это сделал, но я получаю нулевую ссылку на объект, даже если я сделал все то же самое, что и на curse. Ниже приведен код. Так что проблема в том, что в моем результате String есть нулевая ссылка на объект, но как. Может кто-нибудь объяснить, почему bcs он берет данные из inte rnet, поэтому они не могут быть пустыми.

publi c класс MainActivity расширяет AppCompatActivity {

public class DownloadTask extends AsyncTask<String, Void, String> {


    @Override
    protected String doInBackground(String... urls) {

        String result = "";
        URL url;
        HttpURLConnection urlConnection = null;

        try {

            url = new URL(urls[0]);

            urlConnection = (HttpURLConnection)url.openConnection();

            InputStream in = urlConnection.getInputStream();

            InputStreamReader reader = new InputStreamReader(in);

            int data = reader.read();

            while (data != -1) {

                char current = (char) data;

                result += current;

                data = reader.read();
            }

            return result;

        }
        catch (Exception e) {

            e.printStackTrace();

        }

        return null;
    }
}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    DownloadTask task = new DownloadTask();
    String result;

    try {
        result = task.execute("http://www.posh24.se/kandisar").get();

        String[] splitResult = result.split("<div class=\"sidebarContainer\">");

        Pattern p = Pattern.compile("<img src=\"(.*?)\"");
        Matcher m = p.matcher(splitResult[0]);


        while(m.find()) {

            System.out.println(m.group(1));

        }


       p= Pattern.compile("alt\"(.*?)\"");
      m=p.matcher(splitResult[0]);

        while(m.find()) {

            System.out.println(m.group(1));

        }

    } catch (ExecutionException e) {

        e.printStackTrace();


    } catch (InterruptedException e) {

        e.printStackTrace();
    }

}

}

...