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 に答える