Что делает метод setBufferedSize ()? - PullRequest
0 голосов
/ 03 мая 2018

Я не знаю, что делает метод setBufferSize(). Может кто-нибудь объяснить мне, что он делает? Что произойдет, если я поменяю setBufferSize(4 * 1024) на setBufferSize(5)? я не вижу никаких изменений, когда я делаю это !! кто-нибудь может объяснить? Спасибо.

public class Test {

    public static void main(String[] args) {
        try {
            String url = "DOWNLOAD_LINK";
            HttpGet request = new HttpGet(url);
            ConnectionConfig connectionConfig = ConnectionConfig.custom()
                    .setBufferSize(4 * 1024).build();

            HttpClientBuilder builder = HttpClientBuilder.create();
            builder.setDefaultConnectionConfig(connectionConfig);

            HttpClient client = builder.build();

            HttpResponse response = client.execute(request);

            HttpEntity entity = response.getEntity();

            InputStream inputStream = entity.getContent();
            int len = 0;
            byte[] buffer = new byte[4098];
            while ((len = inputStream.read(buffer)) != -1) {
                System.out.println("len: " + len);
                //write into file , etc.
            }
            inputStream.close();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (UnsupportedOperationException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

1 Ответ

0 голосов
/ 03 мая 2018

Вот цитата из документации SetBufferedSize, довольно полная:

Устанавливает предпочтительный размер буфера для тела ответа. Контейнер сервлета будет использовать буфер размером не менее размера просил. Фактический используемый размер буфера можно найти с помощью getBufferSize.

Больший буфер позволяет писать больше контента, прежде чем что-либо фактически отправлено, что дает сервлету больше времени для установки соответствующие коды состояния и заголовки. Меньший буфер уменьшается загрузка памяти сервера и позволяет клиенту больше получать данные быстро.

Источник

Документация Apache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...