How to correctly use parameters passed to a an android thread?-Collection of common programming errors

I have an external .hash file which I tired reading as a simple remote text file:

private class getHash extends AsyncTask{
    @Override
    protected String doInBackground(String... params) {
        String str = null;
        try {
            // Create a URL for the desired page
            URL url = new URL(params[0]);

            // Read all the text returned by the server
            InputStream is =  url.openStream();//The line it crashes on
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader in = new BufferedReader(isr);
            str = in.readLine();
            in.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str;
    }
    @Override
    protected void onPostExecute(String result) {
        hash = result;
    }
}

Then I call the thread :

getHash hashThread =  new getHash();
hashThread.execute(new String[]{"http://www......................hash"});

During execution of the noted line in the class all stops are pulled and I get slapped by the classy Source not found crash.

LogCat gives this error:

W/dalvikvm(724): threadid=1: thread exiting with uncaught exception (group=0x40a13300)