の呼び出しに失敗するサンプル プログラムを実行しようとしてgetCipherSuite()
いjava.lang.IllegalStateException: connection not yet open exception
ます。接続は開いているので、なぜこれが起こっているのかわかりません。私はJavaバージョン1.6.0_18を使用しています
これが例外である理由を知っている人はいますか?
ありがとう。
package web.services.https;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import java.net.MalformedURLException;
import java.security.cert.Certificate;
import java.io.IOException;
public class SunClient {
private static final String url_s = "https://java.sun.com:443";
public static void main(String[] args) {
new SunClient().do_it();
}
private void do_it() {
try {
URL url = new URL(url_s);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.connect();
System.out.println("\nConnected ...\n");
dump_features(conn);
}
catch(MalformedURLException e) {
System.err.println("MalformedURLException exception: " + e);
}
catch(IOException e) {
System.err.println("IOException exception: " + e);
}
}
private void dump_features(HttpsURLConnection conn) {
try {
Certificate[] certs = conn.getServerCertificates();
for(Certificate cert: certs) {
print("\tCert. type: " + cert.getType());
print("\tHash code: " + cert.hashCode());
print("\tAlgorithm: " + cert.getPublicKey().getAlgorithm());
print("\tFormat: " + cert.getPublicKey().getFormat());
print("");
}
print("Status code: " + conn.getResponseCode());
print("Cipher suite: " + conn.getCipherSuite());
}
catch(Exception e) {
System.err.println("Exception exception: " + e);
}
}
private void print(String s) {
System.out.println(s);
}
}