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:
Java String Conversions
Custom Thread Pools In Java 8 Parallel Streams
Spring 5 Functional Bean Registration
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS
Java Program to Construct a Random Graph by the Method of Random Edge Selection
Java Program to Solve any Linear Equation in One Variable
Autoboxing và Unboxing trong Java
Versioning a REST API
Spring’s RequestBody and ResponseBody Annotations
Guide to Java OutputStream
Spring Boot - Tracing Micro Service Logs
Chuyển đổi Array sang ArrayList và ngược lại
Spring Security Registration – Resend Verification Email
A Guide to Iterator in Java
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Spring Boot with Multiple SQL Import Files
Tổng quan về ngôn ngữ lập trình java
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Creating a Generic Array in Java
Test a REST API with Java
Check if there is mail waiting
Java Program to Optimize Wire Length in Electrical Circuit
Deploy a Spring Boot App to Azure
Spring Boot - Google OAuth2 Sign-In
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Difference Between Wait and Sleep in Java
Spring Boot - Code Structure
Converting Strings to Enums in Java
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Feign – Tạo ứng dụng Java RESTful Client