Я просто следую некоторому курсу, и я все это сделал, но я получаю нулевую ссылку на объект, даже если я сделал все то же самое, что и на 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();
}
}
}