hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r748834 - in /httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn: OperatorConnectDirect.java OperatorConnectProxy.java
Date Sat, 28 Feb 2009 12:34:51 GMT
Author: olegk
Date: Sat Feb 28 12:34:51 2009
New Revision: 748834

URL: http://svn.apache.org/viewvc?rev=748834&view=rev
Log:
Cleaned up more sample code

Modified:
    httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java
    httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java

Modified: httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java?rev=748834&r1=748833&r2=748834&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java
(original)
+++ httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectDirect.java
Sat Feb 28 12:34:51 2009
@@ -31,7 +31,6 @@
 
 package org.apache.http.examples.conn;
 
-
 import org.apache.http.Header;
 import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
@@ -52,7 +51,6 @@
 import org.apache.http.protocol.BasicHttpContext;
 
 
-
 /**
  * How to open a direct connection using
  * {@link ClientConnectionOperator ClientConnectionOperator}.
@@ -60,86 +58,17 @@
  * The subsequent message exchange in this example should not
  * be used as a template.
  *
- *
- *
- * <!-- empty lines above to avoid 'svn diff' context problems -->
- * @version $Revision$ $Date$
- *
  * @since 4.0
  */
 public class OperatorConnectDirect {
 
-    /**
-     * The default parameters.
-     * Instantiated in {@link #setup setup}.
-     */
-    private static HttpParams defaultParameters;
-
-    /**
-     * The scheme registry.
-     * Instantiated in {@link #setup setup}.
-     */
-    private static SchemeRegistry supportedSchemes;
-
-
-    /**
-     * Main entry point to this example.
-     *
-     * @param args      ignored
-     */
-    public final static void main(String[] args)
-        throws Exception {
-
-        final HttpHost target = new HttpHost("jakarta.apache.org", 80, "http");
-
-        setup(); // some general setup
-
-        // one operator can be used for many connections
-        ClientConnectionOperator scop = createOperator();
-        OperatedClientConnection conn = scop.createConnection();
-
-        HttpRequest req = createRequest(target);
-        HttpContext ctx = createContext();
-
-        System.out.println("opening connection to " + target);
-        scop.openConnection(conn, target, null, ctx, getParams());
-
-        System.out.println("sending request");
-        conn.sendRequestHeader(req);
-        // there is no request entity
-        conn.flush();
-
-        System.out.println("receiving response header");
-        HttpResponse rsp = conn.receiveResponseHeader();
-
-        System.out.println("----------------------------------------");
-        System.out.println(rsp.getStatusLine());
-        Header[] headers = rsp.getAllHeaders();
-        for (int i=0; i<headers.length; i++) {
-            System.out.println(headers[i]);
-        }
-        System.out.println("----------------------------------------");
-
-        System.out.println("closing connection");
-        conn.close();
-
-    } // main
-
-
-    private final static ClientConnectionOperator createOperator() {
-        return new DefaultClientConnectionOperator(supportedSchemes);
-    }
-
-
-    /**
-     * Performs general setup.
-     * This should be called only once.
-     */
-    private final static void setup() {
+    public static void main(String[] args) throws Exception {
+        HttpHost target = new HttpHost("jakarta.apache.org", 80, "http");
 
+        // some general setup
         // Register the "http" protocol scheme, it is required
         // by the default operator to look up socket factories.
-        supportedSchemes = new SchemeRegistry();
+        SchemeRegistry supportedSchemes = new SchemeRegistry();
         SocketFactory sf = PlainSocketFactory.getSocketFactory();
         supportedSchemes.register(new Scheme("http", sf, 80));
 
@@ -149,46 +78,39 @@
         HttpParams params = new BasicHttpParams();
         HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
         HttpProtocolParams.setUseExpectContinue(params, false);
-        defaultParameters = params;
-
-    } // setup
-
-
-    private final static HttpParams getParams() {
-        return defaultParameters;
-    }
 
+        // one operator can be used for many connections
+        ClientConnectionOperator scop = new DefaultClientConnectionOperator(supportedSchemes);
 
-    /**
-     * Creates a request to execute in this example.
-     * In a real application, request interceptors should be used
-     * to add the required headers.
-     *
-     * @param target    the target server for the request
-     *
-     * @return  a request without an entity
-     */
-    private final static HttpRequest createRequest(HttpHost target) {
-
-        HttpRequest req = new BasicHttpRequest
-            ("OPTIONS", "*", HttpVersion.HTTP_1_1);
-
+        HttpRequest req = new BasicHttpRequest("OPTIONS", "*", HttpVersion.HTTP_1_1);
         req.addHeader("Host", target.getHostName());
+        
+        HttpContext ctx = new BasicHttpContext();
 
-        return req;
-    }
-
-
-    /**
-     * Creates a context for executing a request.
-     * Since this example doesn't really use the execution framework,
-     * the context can be left empty.
-     *
-     * @return  a new, empty context
-     */
-    private final static HttpContext createContext() {
-        return new BasicHttpContext(null);
+        OperatedClientConnection conn = scop.createConnection();
+        try {
+            System.out.println("opening connection to " + target);
+            scop.openConnection(conn, target, null, ctx, params);
+            System.out.println("sending request");
+            conn.sendRequestHeader(req);
+            // there is no request entity
+            conn.flush();
+
+            System.out.println("receiving response header");
+            HttpResponse rsp = conn.receiveResponseHeader();
+
+            System.out.println("----------------------------------------");
+            System.out.println(rsp.getStatusLine());
+            Header[] headers = rsp.getAllHeaders();
+            for (int i = 0; i < headers.length; i++) {
+                System.out.println(headers[i]);
+            }
+            System.out.println("----------------------------------------");
+        } finally {
+            System.out.println("closing connection");
+            conn.close();
+        }
     }
 
-} // class OperatorConnectDirect
+}
 

Modified: httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java?rev=748834&r1=748833&r2=748834&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java
(original)
+++ httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/conn/OperatorConnectProxy.java
Sat Feb 28 12:34:51 2009
@@ -31,7 +31,6 @@
 
 package org.apache.http.examples.conn;
 
-
 import org.apache.http.Header;
 import org.apache.http.HttpHost;
 import org.apache.http.HttpRequest;
@@ -42,7 +41,6 @@
 import org.apache.http.conn.scheme.PlainSocketFactory;
 import org.apache.http.conn.scheme.Scheme;
 import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.scheme.SocketFactory;
 import org.apache.http.conn.ssl.SSLSocketFactory;
 import org.apache.http.impl.conn.DefaultClientConnectionOperator;
 import org.apache.http.message.BasicHttpRequest;
@@ -52,8 +50,6 @@
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.BasicHttpContext;
 
-
-
 /**
  * How to open a secure connection through a proxy using
  * {@link ClientConnectionOperator ClientConnectionOperator}.
@@ -61,121 +57,24 @@
  * The message exchange, both subsequently and for tunnelling,
  * should not be used as a template.
  *
- *
- *
- * <!-- empty lines above to avoid 'svn diff' context problems -->
- * @version $Revision$ $Date$
- *
  * @since 4.0
  */
 public class OperatorConnectProxy {
 
-    /**
-     * The default parameters.
-     * Instantiated in {@link #setup setup}.
-     */
-    private static HttpParams defaultParameters = null;
-
-    /**
-     * The scheme registry.
-     * Instantiated in {@link #setup setup}.
-     */
-    private static SchemeRegistry supportedSchemes;
-
-
-    /**
-     * Main entry point to this example.
-     *
-     * @param args      ignored
-     */
-    public final static void main(String[] args)
-        throws Exception {
+    public static void main(String[] args) throws Exception {
 
         // make sure to use a proxy that supports CONNECT
-        final HttpHost target =
-            new HttpHost("issues.apache.org", 443, "https");
-        final HttpHost proxy =
-            new HttpHost("127.0.0.1", 8666, "http");
-
-        setup(); // some general setup
-
-        // one operator can be used for many connections
-        ClientConnectionOperator scop = createOperator();
-        OperatedClientConnection conn = scop.createConnection();
-
-        HttpRequest req = createRequest(target);
-        HttpContext ctx = createContext();
-
-        System.out.println("opening connection to " + proxy);
-        scop.openConnection(conn, proxy, null, ctx, getParams());
-
-        HttpRequest connect = createConnect(target);
-        System.out.println("opening tunnel to " + target);
-        conn.sendRequestHeader(connect);
-        // there is no request entity
-        conn.flush();
-
-        System.out.println("receiving confirmation for tunnel");
-        HttpResponse connected = conn.receiveResponseHeader();
-        System.out.println("----------------------------------------");
-        printResponseHeader(connected);
-        System.out.println("----------------------------------------");
-        int status = connected.getStatusLine().getStatusCode();
-        if ((status < 200) || (status > 299)) {
-            System.out.println("unexpected status code " + status);
-            System.exit(1);
-        }
-        System.out.println("receiving response body (ignored)");
-        conn.receiveResponseEntity(connected);
-
-        // Now we have a tunnel to the target. As we will be creating a
-        // layered TLS/SSL socket immediately afterwards, updating the
-        // connection with the new target is optional - but good style.
-        // The scheme part of the target is already "https", though the
-        // connection is not yet switched to the TLS/SSL protocol.
-        conn.update(null, target, false, getParams());
-
-        System.out.println("layering secure connection");
-        scop.updateSecureConnection(conn, target, ctx, getParams());
-
-        // finally we have the secure connection and can send the request
-
-        System.out.println("sending request");
-        conn.sendRequestHeader(req);
-        // there is no request entity
-        conn.flush();
-
-        System.out.println("receiving response header");
-        HttpResponse rsp = conn.receiveResponseHeader();
-
-        System.out.println("----------------------------------------");
-        printResponseHeader(rsp);
-        System.out.println("----------------------------------------");
-
-        System.out.println("closing connection");
-        conn.close();
-
-    } // main
-
-
-    private final static ClientConnectionOperator createOperator() {
-        return new DefaultClientConnectionOperator(supportedSchemes);
-    }
-
-
-    /**
-     * Performs general setup.
-     * This should be called only once.
-     */
-    private final static void setup() {
+        HttpHost target = new HttpHost("issues.apache.org", 443, "https");
+        HttpHost proxy = new HttpHost("127.0.0.1", 8666, "http");
 
+        // some general setup
         // Register the "http" and "https" protocol schemes, they are
         // required by the default operator to look up socket factories.
-        supportedSchemes = new SchemeRegistry();
-        SocketFactory sf = PlainSocketFactory.getSocketFactory();
-        supportedSchemes.register(new Scheme("http", sf, 80));
-        sf = SSLSocketFactory.getSocketFactory();
-        supportedSchemes.register(new Scheme("https", sf, 80));
+        SchemeRegistry supportedSchemes = new SchemeRegistry();
+        supportedSchemes.register(new Scheme("http", 
+                PlainSocketFactory.getSocketFactory(), 80));
+        supportedSchemes.register(new Scheme("https", 
+                SSLSocketFactory.getSocketFactory(), 443));
 
         // Prepare parameters.
         // Since this example doesn't use the full core framework,
@@ -183,73 +82,80 @@
         HttpParams params = new BasicHttpParams();
         HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
         HttpProtocolParams.setUseExpectContinue(params, false);
-        defaultParameters = params;
-
-    } // setup
-
-
-    private final static HttpParams getParams() {
-        return defaultParameters;
-    }
-
-
-    /**
-     * Creates a request to tunnel a connection.
-     * In a real application, request interceptors should be used
-     * to add the required headers.
-     *
-     * @param target    the target server for the tunnel
-     *
-     * @return  a CONNECT request without an entity
-     */
-    private final static HttpRequest createConnect(HttpHost target) {
-
-        // see RFC 2817, section 5.2
-        final String authority = target.getHostName()+":"+target.getPort();
 
-        HttpRequest req = new BasicHttpRequest
-            ("CONNECT", authority, HttpVersion.HTTP_1_1);
-
-        req.addHeader("Host", authority);
-
-        return req;
-    }
-
-
-    /**
-     * Creates a request to execute in this example.
-     * In a real application, request interceptors should be used
-     * to add the required headers.
-     *
-     * @param target    the target server for the request
-     *
-     * @return  a request without an entity
-     */
-    private final static HttpRequest createRequest(HttpHost target) {
-
-        HttpRequest req = new BasicHttpRequest
-            ("OPTIONS", "*", HttpVersion.HTTP_1_1);
+        // one operator can be used for many connections
+        ClientConnectionOperator scop = new DefaultClientConnectionOperator(supportedSchemes);
 
+        HttpRequest req = new BasicHttpRequest("OPTIONS", "*", HttpVersion.HTTP_1_1);
+        // In a real application, request interceptors should be used
+        // to add the required headers.
         req.addHeader("Host", target.getHostName());
+        
+        HttpContext ctx = new BasicHttpContext();
 
-        return req;
-    }
-
-
-    /**
-     * Creates a context for executing a request.
-     * Since this example doesn't really use the execution framework,
-     * the context can be left empty.
-     *
-     * @return  a new, empty context
-     */
-    private final static HttpContext createContext() {
-        return new BasicHttpContext(null);
+        OperatedClientConnection conn = scop.createConnection();
+        try {
+            System.out.println("opening connection to " + proxy);
+            scop.openConnection(conn, proxy, null, ctx, params);
+
+            // Creates a request to tunnel a connection.
+            // For details see RFC 2817, section 5.2
+            String authority = target.getHostName() + ":" + target.getPort();
+            HttpRequest connect = new BasicHttpRequest("CONNECT", authority, 
+                    HttpVersion.HTTP_1_1);
+            // In a real application, request interceptors should be used
+            // to add the required headers.
+            connect.addHeader("Host", authority);
+
+            System.out.println("opening tunnel to " + target);
+            conn.sendRequestHeader(connect);
+            // there is no request entity
+            conn.flush();
+
+            System.out.println("receiving confirmation for tunnel");
+            HttpResponse connected = conn.receiveResponseHeader();
+            System.out.println("----------------------------------------");
+            printResponseHeader(connected);
+            System.out.println("----------------------------------------");
+            int status = connected.getStatusLine().getStatusCode();
+            if ((status < 200) || (status > 299)) {
+                System.out.println("unexpected status code " + status);
+                System.exit(1);
+            }
+            System.out.println("receiving response body (ignored)");
+            conn.receiveResponseEntity(connected);
+
+            // Now we have a tunnel to the target. As we will be creating a
+            // layered TLS/SSL socket immediately afterwards, updating the
+            // connection with the new target is optional - but good style.
+            // The scheme part of the target is already "https", though the
+            // connection is not yet switched to the TLS/SSL protocol.
+            conn.update(null, target, false, params);
+
+            System.out.println("layering secure connection");
+            scop.updateSecureConnection(conn, target, ctx, params);
+
+            // finally we have the secure connection and can send the request
+
+            System.out.println("sending request");
+            conn.sendRequestHeader(req);
+            // there is no request entity
+            conn.flush();
+
+            System.out.println("receiving response header");
+            HttpResponse rsp = conn.receiveResponseHeader();
+
+            System.out.println("----------------------------------------");
+            printResponseHeader(rsp);
+            System.out.println("----------------------------------------");
+
+        } finally {
+            System.out.println("closing connection");
+            conn.close();
+        }
     }
 
-
     private final static void printResponseHeader(HttpResponse rsp) {
-
         System.out.println(rsp.getStatusLine());
         Header[] headers = rsp.getAllHeaders();
         for (int i=0; i<headers.length; i++) {
@@ -257,5 +163,5 @@
         }
     }
 
-} // class OperatorConnectProxy
+}
 



Mime
View raw message