FileUtils copyURLToFile BasicAuthenication

Как передать учетные данные пользователя для загрузки файлов с помощью apache commons FileUtils?

Я использую аутентификатор, как показано ниже, но, похоже, он не работает. Он даже не жалуется на плохие учетные данные, поэтому похоже, что мой аутентификатор игнорируется. Я продолжаю получать 403.

    import java.net.Authenticator;
    import java.net.PasswordAuthentication;

    public class MyAuthenticator extends Authenticator {
       private static String username = "myUser";
       private static String password = "myPass";

       @Override
       protected PasswordAuthentication getPasswordAuthentication() {
           return new PasswordAuthentication (username, 
               password.toCharArray());
      }
   }

Затем в основном:

public static void main( String[] args )
    {      
        // Install Authenticator
        Authenticator.setDefault(new MyAuthenticator());

        try {   
        FileUtils.copyURLToFile((new URL("https://example.com/api/core/v3/stuff/611636/data?v=1"), 
                                 new File("d:\\example\\dir1\\subdir1\\myFile.tar"));

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

Я могу загрузить через почтальона, используя правильные учетные данные. Я могу загружать незащищенные файлы без использования учетных данных с помощью FileUtils.


person Micho Rizo    schedule 17.09.2017    source источник
comment
Принимает ли источник базовую аутентификацию? Вы пытались передать учетные данные в URL-адресе следующим образом: http://username:[email protected] Изменить: вы проверили, как выглядит запрос к вашей цели? Попробуйте отладить ваш URL-запрос, и вы увидите, передает ли ваш аутентификатор что-то или нет. Также: проверьте документацию copyURLToFile()-методов. Вы также можете передать параметры тайм-аута, что было бы лучшим решением, потому что, если тайм-аут не установлен, этот метод будет работать вечно.   -  person Goot    schedule 17.09.2017
comment
В итоге я отказался от подхода FileUtils и вместо этого использовал банку okhttp3.   -  person Micho Rizo    schedule 18.09.2017
comment
Я использовал этот метод. Оно работает.   -  person M-Razavi    schedule 27.03.2018