Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.zip.GZIPInputStream;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;

public class Main {
    public static void main(String[] args) {
        System.out.println(downloadHtml("http://baike.baidu.com"));
    }

    static String downloadHtml(String urlString) {
        StringBuffer buffer = new StringBuffer();

        try {
            URL url = new URL(urlString);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            HttpURLConnection.setFollowRedirects(true);
            conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
            String encoding = conn.getContentEncoding();
            InputStream inStr = null;

            if (encoding != null && encoding.equalsIgnoreCase("gzip")) {
                inStr = new GZIPInputStream(conn.getInputStream());
            } else if (encoding != null && encoding.equalsIgnoreCase("deflate")) {
                inStr = new InflaterInputStream(conn.getInputStream(), new Inflater(true));
            } else {
                inStr = conn.getInputStream();
            }
            int ptr = 0;
            InputStreamReader inStrReader = new InputStreamReader(inStr, Charset.forName("GB2312"));

            while ((ptr = inStrReader.read()) != -1) {
                buffer.append((char) ptr);
            }
            inStrReader.close();
            conn.disconnect();
            inStr.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return buffer.toString();
    }

}