Java SocketException: сокет закрыт

#java #android-studio #inputstream #httpurlconnection #socketexception

#java #android-studio #входной поток #httpurlconnection #исключение socketexception

Вопрос:

У меня большая проблема, и я не понимаю, почему это так. Моя проблема в том, что когда я получаю медиафайлы с сервера (файлы .mp4) и пытаюсь сохранить их в локальном хранилище, я получаю исключение: сокет закрыт. Пожалуйста, помогите мне.

     try {
        RequestHelper requestHelper = new RequestHelper(activity);
        HttpURLConnection conn = requestHelper.connection(url   file, "GET");

        int statuscode = requestHelper.getStatuscode(conn);
        if (statuscode == 200) {
            InputStream is = conn.getInputStream();
            System.out.println("inputStream: "   is);
            OutputStream os = new FileOutputStream(new File(saveDir, file.getName()));
            System.out.println("outputStream: "   os);



            byte[] b = new byte[1024];
            int length;
            
            //HERE IS THE EXCEPTION TRIGGER
            System.out.println("inputstreamRead: "   is.read(b));

            while ((length = is.read(b)) != -1) {
                os.write(b, 0, length);
            }

            os.flush();
            os.close();
            is.close();
        }

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

Комментарии:

1. Похоже, что другая сторона закрывает сокет.

Ответ №1:

можете ли вы проверить, добавили ли вы заголовок keep-alive?