Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Download file by url


Автор: 4epT 19.11.2012, 12:25
Всем привет. Нужно по URL получить файл в массиве байтов (на серваке сохранять его нельзя). Делаю с помощью URLConnection. Но на 2 серверах из 8, файл скачивается не правильно (хешь файла получается другой). Думаю в сторону проблем с кодировкой (хотя может быть проблем не в этом) ...

Вот код как я выкачиваю файл:

Код

        URLConnection uCon = null;
        InputStream is = null;
        
        try {
            URL Url;
            Url = new URL(url);

            uCon = Url.openConnection();

            is = uCon.getInputStream();
            
            int contentLength = uCon.getContentLength();
             
            ByteArrayOutputStream tmpOut;
            if (contentLength != -1) {
                tmpOut = new ByteArrayOutputStream(contentLength);
            } else {
                return null;
            }

            byte[] buf = new byte[512];
            while (true) {
                int len = is.read(buf);
                if (len == -1) {
                    break;
                }
                tmpOut.write(buf, 0, len);
            }
            is.close();
            tmpOut.close();

            byte[] array = tmpOut.toByteArray();
            
            return array;
        } catch (Exception e) {
            e.printStackTrace();
            
            return null;
        } finally {
            
            try {
                
                is.close();
                
            } catch (IOException e) {
                
                e.printStackTrace();
                
            }
        }


Как тут указать кодировку запроса ?

p.s. есть вариант добавить вот такой проперти:

Код

            uCon.setRequestProperty("Accept-Charset", "UTF-8");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)