с Java скачанный файл слишком мал

Из реакционных документов:

setState() не сразу мутирует this.state, а создает ожидающий переход состояния. Доступ к this.state после вызова этого метода может потенциально вернуть существующее значение.

https://facebook.github.io/react/docs/component-api.html

Что вы можете сделать, это передать функцию обратного вызова setState, которая запускается после обновления состояния:

this.setState(
    {autocomplete_from: ...}, 
    function () {
        ... at this point the state of the component is set ...
    }
)

0
задан Ginso 15 January 2019 в 16:48
поделиться

1 ответ

URL имеет встроенный редирект. Обычно такие перенаправления, особенно для URL-адресов, предназначенных для браузеров (которые явно не являются URL-адресами в формате mp3), передаются как HTTP 301 «Перемещено навсегда» (а иногда и 302 «Перемещено временно»), при этом правильный URL-адрес отправляется в Location заголовок. Текст, который вы видите (загруженные вами 315 байт), является просто «запасным» HTML-кодом, в котором также указано, что содержимое было перемещено. К счастью, нет необходимости разбирать это.

HTTP-браузер кода openStream URL-адреса является очень простым и не следует перенаправлениям. Вам нужен API, который делает. URLConnection (также из основных библиотек) может это сделать, но он не следует перенаправлениям, если перенаправление переключается с http на https или наоборот, поэтому вы можете этого не делать. На всякий случай, если вы это сделаете:

File target = /*...*/;
HttpURLConnection con = (HttpURLConnection) new URL(link).openConnection();
con.setInstanceFollowRedirects(true);
try (InputStream in = con.getInputStream()) {
    Files.copy(in, target.toPath(), StandardCopyOption.REPLACE_EXISTING);
}

Если вышеприведенное не принесло пользы (возможно, из-за проблемы с перенаправлением HTTP / HTTPS), я предлагаю выбрать реального HTTP-клиента, которого стандартный API не предоставляет. Я предлагаю OkHttp .

0
ответ дан rzwitserloot 15 January 2019 в 16:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: