这是<<java网络编程>> 中客户端的例子
这本书里还有个服务器端的例子
不过太长了,
// URLGrab.java
import java.io.*;
import java.net.*;
import javax.security.cert.Certificate;
import com.sun.net.ssl.HttpsURLConnection; // J2SDK 1.3
// import java.net.ssl.HttpsURLConnection; // J2SDK 1.4
/**
* A simple application that grabs the contents of an URL and dumps
* them to a file. The URL may be a https URL. Some properties of the
* connection are displayed to standard output.
*/
public class URLGrab {
/**
* The location of the https protocol handler
*/
private static final String PROTOCOL_HANDLERS =
"com.sun.net.ssl.internal.www.protocol";
/**
* Retrieves the contents and other information about a connection given
* on the command line.
* @param args the command line arguments
* @throws Exception if something went wrong
*/
public static void main(String args[]) throws Exception {
System.setProperty("java.protocol.handler.pkgs", PROTOCOL_HANDLERS);
if (args.length != 2) {
System.out.println("Please give an URL and a filename.");
} else {
URLConnection urlConn = new URL(args[0]).openConnection();
urlConn.connect(); // connect to the server
displayProperties(urlConn); // display connection properties
writeContents(urlConn, args[1]); // write URL contents to file
}
}
/**
* Writes the contents of the URL to a file
* @param urlConn The connection
* @param filename The name of the file to write to
* @throws IOException if a network or other I/O error occurred
*/
private static void writeContents(URLConnection urlConn,
String filename) throws IOException {
InputStream in = urlConn.getInputStream();
OutputStream out = new FileOutputStream(filename);
try {
byte[] buffer = new byte[512];
int bytesRead;
while ((bytesRead = in.read(buffer)) > 0) {
out.write(buffer, 0, bytesRead);
}
}
finally {
try {
out.close();
} catch (Exception e) { /* do nothing */
}
try {
in.close();
} catch (Exception e) { /* do nothing */
}
}
}
/**
* Displays some URL connection properties
* @param urlConn The connection
*/
private static void displayProperties(URLConnection urlConn) {
System.out.println("Content Length: " + urlConn.getContentLength());
System.out.println("Content Type: " + urlConn.getContentType());
System.out.println("Content Encoding: " + urlConn.getContentEncoding());
if (urlConn instanceof HttpsURLConnection) {
displaySecureProperties((HttpsURLConnection) urlConn);
}
}
/**
* Displays some https URL connection properties
* @param urlConn The secure connection
*/
private static void displaySecureProperties(HttpsURLConnection urlConn) {
System.out.println("Cipher Suite: " + urlConn.getCipherSuite());
Certificate[] chain = urlConn.getServerCertificateChain();
for (int i = 0; chain != null && i < chain.length; i++) {
System.out.println("Certificate #" + (i + 1) + ":\n" + chain[i]);
}
}
}
我试了一下,工作正常
凡是有该标志的文章,都是该blog博主Caoer(草儿)原创,凡是索引、收藏
、转载请注明来处和原文作者。非常感谢。