gpt4 book ai didi

java - FileUtils copyURLToFile BasicAuthenication

转载 作者:行者123 更新时间:2023-12-01 12:12:16 24 4
gpt4 key购买 nike

如何使用 apache commons FileUtils 传递用于下载文件的用户凭据?

我正在使用如下身份 validator ,但似乎不起作用。它甚至不会提示凭据不良,因此看起来我的身份 validator 被忽略了。我不断收到 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();
}
}

我可以使用正确的凭据通过 postman 下载。
我可以使用 FileUtils 在不使用凭据的情况下下载非安全文件。

最佳答案

import org.apache.commons.io.IOUtils;
import java.net.URL;
import java.net.URLConnection;
import java.util.Base64;

String basicAuthenticationEncoded = Base64.getEncoder().encodeToString(user + ":" + password).getBytes("UTF-8"));
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + basicAuthenticationEncoded);
IOUtils.copy(urlConnection.getInputStream(), fileOutputStream);

关于java - FileUtils copyURLToFile BasicAuthenication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46259498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com