Исключение ввода-вывода, когда я использую "FileUtils.copyURLToFile (urlConnection.getURL (), exportFile);" - PullRequest
0 голосов
/ 24 сентября 2019

Сводка: Я пытаюсь сохранить файл PDF, который будет сгенерирован из API с использованием FileUtils.copyURLToFile(urlConnection.getURL(), exportFile);, но получим 401 error.

Ошибка:

java.io.IOException: Server returned HTTP response code: 401 for URL: http://8901-7M0W2X2.KMX.LOCAL/api/comparison/cekdotljl8r98d827gw1y7xvh/result/pdf
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.URL.openStream(Unknown Source)
    at org.apache.commons.io.FileUtils.copyURLToFile(FileUtils.java:1460)
    at sampleAPI.Main.main(Main.java:63)

Я аутентифицировал соединение, но получил ту же ошибку.

Письменный код:

try {
    String name = "****";
    String password = "****";
    File exportFile = new File(
            "C:/New folder/result.pdf");
    String webPage = "http://8901-7M0W2X2.KMX.LOCAL:80/api/comparison/compare?file1=file:X/Letter_0.pdf&file1=file:X/Letter_2.pdf&result=pdf&visible=true&profile=MyStyle";
    String authString = name + ":" + password;
    System.out.println("auth string: " + authString);
    byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
    String authStringEnc = new String(authEncBytes);
    System.out.println("Base64 encoded auth string: " + authStringEnc);
    URL url = new URL(webPage);
    URLConnection urlConnection = url.openConnection();
    urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);

    FileUtils.copyURLToFile(urlConnection.getURL(), exportFile);

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

Пожалуйста, предоставьте свое предложение для исправленияпроблема.Спасибо!

1 Ответ

0 голосов
/ 26 сентября 2019

Я могу решить эту проблему с помощью InputStream и FileOutPutStream

response = urlConnection.getInputStream();
        fileOut = new FileOutputStream(outputFile);

        while ((i = response.read()) != -1) {
            fileOut.write(i);
        }
        fileOut.close();

Спасибо!

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