java.io.FileNotFoundException HttpURLConnection Android

Question:

I'm trying to get a list of users. I do this in a separate thread. Before that, I get a list of cities, also in a separate stream, and I get everything fine – the code is identical, only the request is different. This request works in the browser, but here it gives an error – at the end.

The site is out, so if you go to this address in the browser, then everything works.

private class GetDoctors extends AsyncTask<Void, Void, String> {

        HttpURLConnection conn = null;
        BufferedReader reader = null;
        String doctors = "";

        @Override
        protected String doInBackground(Void... town_id) {
            // получаем данные с внешнего ресурса
            try {
                URL url = new URL("http://127.0.0.1/Controller/ios/?action=getDoctorsList&town_id=13");
                Log.d("query", url.getQuery());
                conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                conn.connect();

                InputStream inputStream = conn.getInputStream();
                StringBuffer buffer = new StringBuffer();

                reader = new BufferedReader(new InputStreamReader(inputStream));

                String line;

                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }

                doctors = buffer.toString();

            } catch (Exception e) {
                e.printStackTrace();
            }

            return doctors;
        }

        @Override
        protected void onPostExecute(String doctors) {
            super.onPostExecute(doctors);

            try {
                JSONObject doctorsObj = new JSONObject(doctors);

                Log.d("doctors", doctorsObj.toString());

                /*
                JSONArray townsArray =  new JSONArray(townsObj.getString("towns"));

                for (int i = 0; i < townsArray.length(); i++) {

                    JSONObject obj = new JSONObject(townsArray.getString(i));

                    TOWNS_LIST.add(obj.getString("name"));

                }*/

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

Error:

W/System.err: java.io.FileNotFoundException: http://127.0.0.1/Controller/ios/[Ljava.lang.String;@2c726108
W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:197)
W/System.err:     at sniff.sloyev.de.sniff.TownsActivity$GetDoctors.doInBackground(TownsActivity.java:277)
W/System.err:     at sniff.sloyev.de.sniff.TownsActivity$GetDoctors.doInBackground(TownsActivity.java:258)
W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:288)
W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err:     at java.lang.Thread.run(Thread.java:818)
W/System.err: org.json.JSONException: End of input at character 0 of 
W/System.err:     at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
W/System.err:     at org.json.JSONTokener.nextValue(JSONTokener.java:97)
W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:156)
W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:173)
W/System.err:     at sniff.sloyev.de.sniff.TownsActivity$GetDoctors.onPostExecute(TownsActivity.java:302)
W/System.err:     at sniff.sloyev.de.sniff.TownsActivity$GetDoctors.onPostExecute(TownsActivity.java:258)
W/System.err:     at android.os.AsyncTask.finish(AsyncTask.java:632)
W/System.err:     at android.os.AsyncTask.access$600(AsyncTask.java:177)
W/System.err:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err:     at android.os.Looper.loop(Looper.java:135)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5221)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Answer:

the second thread had to be started like this:

new GetDoctors().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
Scroll to Top