Take this example.
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLConnection;
public class HttpConnect {
    public static void main(String[] args) throws Exception {
      URL url = new URL("http://www.rgagnon.com/howto.html");
      URLConnection con = url.openConnection();
      Reader reader = new InputStreamReader(con.getInputStream());
      while (true) {
        int ch = reader.read();
        if (ch==-1) {
          break;
        }
        System.out.print((char)ch);
      }
    }
}
The above snippet reads the HTML page and dumps it to the console.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD>
<!-- developpe par  Real Gagnon, Quebec Canada -->
<LINK REL="SHORTCUT ICON" HREF="http://www.maixuanviet.com/favicon.ico">
<META NAME="description"
      Content="Real's JAVA JAVASCRIPT WSH and PowerBuilder How-to pages with useful code snippets">
<META NAME="keywords"
      Content="java,javascript,wsh,vbscript,how-to,powerbuilder">
<LINK title="mystyle" href="howto.css" type="text/css" rel="stylesheet">
...
To trace what is going on at the HTTP protocol level, we can switch the HttpURLConnection/UrlConnection in debug mode.
You must enable the java-logging mechanism by setting a special property when starting the JVM :
java.exe -Djava.util.logging.config.file=logging.properties HttpConnect
and put in logging.properties file (by default in JRE_HOME\lib) the following property
sun.net.www.protocol.http.HttpURLConnection.level = ALL
Note :
If running from Eclipse, you put the -Djava.util.logging… via the Run configuration dialog -> Arguments Tab -> VM arguments textarea.
The result is :
2010-08-07 00:00:31 sun.net.www.protocol.http.HttpURLConnection writeRequests
FIN: sun.net.www.MessageHeader@16caf435 pairs: {GET /howto.html HTTP/1.1: null}{User-Agent: Java/1.6.0_20}{Host: www.maixuanviet.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}
2010-08-07 00:00:31 sun.net.www.protocol.http.HttpURLConnection getInputStream
FIN: sun.net.www.MessageHeader@5ac0728 pairs: {null: HTTP/1.1 200 OK}{Date: Sat, 07 Aug 2010 04:00:33 GMT}{Server: Apache}{Accept-Ranges: bytes}{Content-Length: 17912}{Keep-Alive: timeout=5, max=64}{Connection: Keep-Alive}{Content-Type: text/html}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD>
<!-- developpe par  Real Gagnon, Quebec Canada -->
<LINK REL="SHORTCUT ICON" HREF="http://www.maixuanviet.com/favicon.ico">
<META NAME="description"
      Content="Real's JAVA JAVASCRIPT WSH and PowerBuilder How-to pages with useful code snippets">
...
Done! Happy Coding!
Related posts:
Spring Security Remember Me
Convert Hex to ASCII in Java
Hamcrest Collections Cookbook
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
Java Program to Implement Johnson’s Algorithm
Java Program to Implement Ternary Search Tree
Guide to Escaping Characters in Java RegExps
Giới thiệu Aspect Oriented Programming (AOP)
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Java 8 Streams peek() API
Các nguyên lý thiết kế hướng đối tượng – SOLID
Java Program to Implement Bloom Filter
Notify User of Login From New Device or Location
Java Program to Implement the linear congruential generator for Pseudo Random Number Generation
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Java – Reader to InputStream
Một số nguyên tắc, định luật trong lập trình
Java Program to Perform Search in a BST
Spring Cloud – Tracing Services with Zipkin
Java – Try with Resources
Làm thế nào tạo instance của một class mà không gọi từ khóa new?
Hướng dẫn sử dụng lớp Console trong java
Reactive WebSockets with Spring 5
Using Spring @ResponseStatus to Set HTTP Status Code
HttpClient Basic Authentication
Introduction to Spring Cloud Netflix – Eureka
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
How to Replace Many if Statements in Java
Java Program to Implement Warshall Algorithm
Guide to Selenium with JUnit / TestNG
Guide to CountDownLatch in Java
Spring Boot Gradle Plugin
 
