java - 使用用户名/密码连接到远程服务器以下载文件

标签 java passwords connection

我需要连接到需要用户名/密码的远程服务器,并且需要下载视频和其他 pdf 文档。 java中最好的方法是什么?一些代码示例将非常有值(value)。我尝试遵循以下内容,如果这段代码看起来像是新手的工作,请提前接受我的歉意,因为我刚刚开始 Java 并从像您这样的大师那里学习最佳实践:)。问题是如何进行身份验证,如何向服务器提供用户名/密码。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;


public class Downloader {
URL url;
public Downloader(){
    try {
        url = new URL("https://d396qusza40orc.cloudfront.net/algs4partI/slides%2F13StacksAndQueues.pdf");
        try {
            URLConnection con = url.openConnection();
            con.connect();
            InputStream inStream = url.openStream();
            FileOutputStream outStream = new FileOutputStream("data.dat");
            int bytesRead;
            byte[] buffer = new byte[100000];
            while((bytesRead = inStream.read(buffer)) > 0){

                outStream.write(buffer, 0 , bytesRead);
                buffer = new byte[100000];
            }
            outStream.close();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
public static void main(String[] args){
    Downloader d = new Downloader();
}
}

最佳答案

您应该能够提供用户名/密码作为 URL 的一部分:

例如

https://username:password@example.com/secure/myfile.pdf

这确实假设该站点使用标准 HTTP 身份验证。

如果正在进行某种自定义身份验证,您可能需要提供包含身份验证信息的预生成 cookie,或者可能需要在尝试下载文件之前执行单独的登录请求。这完全取决于远程服务器的设置。

关于java - 使用用户名/密码连接到远程服务器以下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16016099/

相关文章:

java - 如何从android中的字符串中获取特定数字?

java - Java : 2 method calls or 1 object call 中有什么更好/更快

java - 从 servlet 返回 HTML/XHTML 文件

c# - "Connection must be open for this operation"ODP异常

python - 两个客户端没有成功连接到服务器

tcp - TCP 是否使用另一个端口发送数据?

java - 如何将特定字段用于特定的应用程序构建(调试/发行版)?

php - 使用带有照片哈希密码的 Bcrypt 不起作用

encryption - 存储加密密码

unix - 如何将密码传递给 “su”命令?