3

我正在尝试这个

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpBasicAuth {

public static void downloadFileWithAuth(String urlStr, String user, String pass, String outFilePath) {
    try {
        // URL url = new URL ("http://ip:port/download_url");
        URL url = new URL(urlStr);
        String authStr = user + ":" + pass;
        String authEncoded = Base64.encodeBytes(authStr.getBytes());

        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setDoOutput(true);
        connection.setRequestProperty("Authorization", "Basic " + authEncoded);

        File file = new File(outFilePath);
        InputStream in = (InputStream) connection.getInputStream();
        OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
        for (int b; (b = in.read()) != -1;) {
            out.write(b);
        }
        out.close();
        in.close();
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}
}
  1. 它工作正常,但给出错误“找不到符号错误 Base64Encoder”
  2. 下载 Base64.java 文件

现在我不知道如何在我的项目中使用这个文件来消除错误。你能告诉我如何使用 Base64.java 文件来消除错误吗?

感谢期待。

4

2 回答 2

2

您可以只使用 JDK 本身中存在的 Base64 编码/解码功能。包javax.xml.bind包含一个DatatypeConverter类,它提供打印/解析各种形式的方法,包括

static byte[] parseBase64Binary(String lexicalXSDBase64Binary)
static String printBase64Binary(byte[] val)

只需导入javax.xml.bind.DatatypeConverter并使用提供的方法。

于 2012-06-08T13:40:55.363 回答
1

需要将其Base64导入您的代码。导入取决于您的源文件。 Apache Commons Codec具有 Base64 的可靠实现。

例子:

import org.apache.commons.codec.binary.Base64;
于 2012-06-08T08:10:41.847 回答