0

1 つの URL から 1 つの zip ファイルをダウンロードしたかったので、以下のコードを使用して URL を開いて から 1 つの zip ファイルをダウンロードしました。しかし、次の例外が発生しています。

java.net.UnknownHostException: www.abc.com

だから私はいくつかの再調査を行い、それが証明書の問題である可能性があると推測し、以下のkeytoolコマンドを使用して証明書を生成しました

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048

その後、次のコードを使用して、生成された keystore.jks ファイルの場所を設定します

 System.setProperty("javax.net.ssl.trustStore","C:\\Programme\\Java\\jdk1.6.0_31\\jre\\bin\\keystore.jks");

コードを実行した後も、同じ例外が発生します

java.net.UnknownHostException: www.abc.com 

解決する方法はありますか?ブラウザからこのサイトにアクセスできます。

以下の私の完全なコード:

import java.io.*;
import java.net.*;

public class UrlDownload {
    final static int size = 1024;

    public static void fileUrl(String fAddress, String localFileName,
            String destinationDir) {
        OutputStream outStream = null;
        URLConnection uCon = null;

        InputStream is = null;
        try {
            URL Url;
            byte[] buf;
            int ByteRead, ByteWritten = 0;
            Url = new URL(fAddress);
            outStream = new BufferedOutputStream(new FileOutputStream(
                    destinationDir + "\\" + localFileName));

            uCon = Url.openConnection();
            is = uCon.getInputStream();
            buf = new byte[size];
            while ((ByteRead = is.read(buf)) != -1) {
                outStream.write(buf, 0, ByteRead);
                ByteWritten += ByteRead;
            }
            System.out.println("Downloaded Successfully.");
            System.out.println("File name:\"" + localFileName
                    + "\"\nNo ofbytes :" + ByteWritten);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
                outStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void fileDownload(String fAddress, String destinationDir) {
        int slashIndex = fAddress.lastIndexOf('/');
        int periodIndex = fAddress.lastIndexOf('.');

        String fileName = fAddress.substring(slashIndex + 1);

        if (periodIndex >= 1 && slashIndex >= 0
                && slashIndex < fAddress.length() - 1) {
            fileUrl(fAddress, fileName, destinationDir);
        } else {
            System.err.println("path or file name.");
        }
    }

    public static void main(String[] args) {

        String url = "http://www.abc.com/coolsolutions/tools/downloads/ntradping.zip";
        System.setProperty("javax.net.ssl.trustStore","C:\\Programme\\Java\\jdk1.6.0_31\\jre\\bin\\keystore.jks");
            String destAddress = "C:\\downloads";
                fileDownload(url,destAddress);

        } 
    }

以下のコードを試しました。これにより、不明なホスト例外がスローされます。

InetAddress inetAddress = InetAddress.getByName("http://www.google.com");
    String ipAddress = inetAddress.getHostAddress().toString()'
    System.out.println(ipAddress );
4

1 に答える 1