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 );