I need to find broken links in given website and display their Status Codes. I can check if website fails, because exceptions are thrown. But I can't get the status code. I've already checked these suggestions: Android code after httpclient.execute(httpget) doesn't get run in try (using AsyncTask) HttpClient get status code
I run AsyncTask.
Here's my AsyncTask variables:
private class WebPageDownloadTask extends AsyncTask<String, Void, String> {
ProgressDialog pDialog;
int statusCode;
HttpResponse execute;
Here's my doInBackground:
@Override
protected String doInBackground(String... urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(urls[0]);
String response = "";
try {
execute = client.execute(httpGet);
statusCode = execute.getStatusLine().getStatusCode();
Log.d("test", statusCode + "");
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(
new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}
} catch (HttpResponseException e) {
e.printStackTrace();
statusCode = execute.getStatusLine().getStatusCode();
Log.d("test", statusCode + "");
} catch (IOException e) {
e.printStackTrace();
statusCode = execute.getStatusLine().getStatusCode();
Log.d("test", statusCode + "");
}
return response;
}
If I give wrong internet address, execute.getStatusLine().getStatusCode() throws nullPointerException.