Java tutorial
import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; public class CounterApp { String servletURL; String sessionCookie = null; public static void main(String args[]) { if (args.length == 0) { System.out.println("\nServlet URL must be specified"); return; } try { CounterApp app = new CounterApp(args[0]); for (int i = 1; i <= 5; i++) { int count = app.getCount(); System.out.println("Pass " + i + " count=" + count); } } catch (Exception ex) { ex.printStackTrace(); } } public CounterApp(String url) { servletURL = url; } public int getCount() throws Exception { java.net.URL url = new java.net.URL(servletURL); java.net.URLConnection con = url.openConnection(); if (sessionCookie != null) { con.setRequestProperty("cookie", sessionCookie); } con.setUseCaches(false); con.setDoOutput(true); con.setDoInput(true); ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(byteOut); out.flush(); byte buf[] = byteOut.toByteArray(); con.setRequestProperty("Content-type", "application/octet-stream"); con.setRequestProperty("Content-length", "" + buf.length); DataOutputStream dataOut = new DataOutputStream(con.getOutputStream()); dataOut.write(buf); dataOut.flush(); dataOut.close(); DataInputStream in = new DataInputStream(con.getInputStream()); int count = in.readInt(); in.close(); if (sessionCookie == null) { String cookie = con.getHeaderField("set-cookie"); if (cookie != null) { sessionCookie = parseCookie(cookie); System.out.println("Setting session ID=" + sessionCookie); } } return count; } public String parseCookie(String raw) { String c = raw; if (raw != null) { int endIndex = raw.indexOf(";"); if (endIndex >= 0) { c = raw.substring(0, endIndex); } } return c; } }