main.java

来自「java的经典例子」· Java 代码 · 共 58 行

JAVA
58
字号
import java.net.*;
import java.io.*;

// Content handler that expects content to be Text String
class SimpleStringHandler extends ContentHandler {
    public Object getContent(URLConnection conn) throws IOException {
        InputStream input = conn.getInputStream();
        StringBuffer buf = new StringBuffer();
        int c;
        while ((c = input.read()) >= 0) {
            buf.append((char) c);
        }
        input.close();
        return (buf.toString());
    }
}

// Sample factory that always return SimpleStringHandler
class SampleFactory implements ContentHandlerFactory {
    static private ContentHandler defaultHandler = new SimpleStringHandler();
    public ContentHandler createContentHandler(String mimeType) {
	// ignore mimeType
	return defaultHandler;
    }
}

// START
public class Main {
    public static void main(String[] args) {
	if (args.length == 0) {
	    System.err.println("java Main [-l] <http url>");
	    System.exit(-1);
	}

	String url = args[args.length-1];
	// -l means do follow redirects
	boolean redirect = (args.length == 2);
	HttpURLConnection.setFollowRedirects(redirect);

	// Configure system to use our own factory
	URLConnection.setContentHandlerFactory(new SampleFactory());

	try {
	    // Directly use implementation to get 
	    HttpImpl conn = new HttpImpl(new URL(url));

	    // Retrieve contents
	    Object obj = conn.getContent();

	    // Display what we've found
	    System.out.println(obj);
	} catch (IOException e) {
	    e.printStackTrace();
	}
    }
}
// END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?