hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r554217 - /jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/
Date Sat, 07 Jul 2007 15:03:23 GMT
Author: olegk
Date: Sat Jul  7 08:03:22 2007
New Revision: 554217

URL: http://svn.apache.org/viewvc?view=rev&rev=554217
Log:
An example that performs GETs from multiple threads

Added:
    jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
  (with props)
Modified:
    jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAuthentication.java
    jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientChunkEncodedPost.java
    jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientCustomSSL.java
    jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAuthentication.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAuthentication.java?view=diff&rev=554217&r1=554216&r2=554217
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAuthentication.java
(original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAuthentication.java
Sat Jul  7 08:03:22 2007
@@ -1,5 +1,5 @@
 /*
- * $Header$
+ * $HeadURL$
  * $Revision$
  * $Date$
  * ====================================================================

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientChunkEncodedPost.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientChunkEncodedPost.java?view=diff&rev=554217&r1=554216&r2=554217
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientChunkEncodedPost.java
(original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientChunkEncodedPost.java
Sat Jul  7 08:03:22 2007
@@ -1,5 +1,5 @@
 /*
- * $Header$
+ * $HeadURL$
  * $Revision$
  * $Date$
  * ====================================================================
@@ -24,6 +24,7 @@
  * individuals on behalf of the Apache Software Foundation.  For more
  * information on the Apache Software Foundation, please see
  * <http://www.apache.org/>.
+ * 
  */
 
 package org.apache.http.examples.client;

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientCustomSSL.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientCustomSSL.java?view=diff&rev=554217&r1=554216&r2=554217
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientCustomSSL.java
(original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientCustomSSL.java
Sat Jul  7 08:03:22 2007
@@ -1,5 +1,5 @@
 /*
- * $Header$
+ * $HeadURL$
  * $Revision$
  * $Date$
  * ====================================================================
@@ -24,8 +24,6 @@
  * individuals on behalf of the Apache Software Foundation.  For more
  * information on the Apache Software Foundation, please see
  * <http://www.apache.org/>.
- *
- * [Additional notices, if required by prior licensing conditions]
  *
  */
 

Added: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java?view=auto&rev=554217
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
(added)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
Sat Jul  7 08:03:22 2007
@@ -0,0 +1,146 @@
+/*
+ * $HeadURL$
+ * $Revision$
+ * $Date$
+ *
+ * ====================================================================
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+ 
+package org.apache.http.examples.client;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpVersion;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.PlainSocketFactory;
+import org.apache.http.conn.Scheme;
+import org.apache.http.conn.SchemeRegistry;
+import org.apache.http.conn.params.HttpConnectionManagerParams;
+import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.ThreadSafeClientConnManager;
+import org.apache.http.params.BasicHttpParams;
+import org.apache.http.params.HttpParams;
+import org.apache.http.params.HttpProtocolParams;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.util.EntityUtils;
+
+/**
+ * An example that performs GETs from multiple threads.
+ * 
+ * @author Michael Becke
+ */
+public class ClientMultiThreadedExecution {
+
+    public static void main(String[] args) throws Exception {
+        // Create and initialize HTTP parameters
+        HttpParams params = new BasicHttpParams();
+        HttpConnectionManagerParams.setMaxTotalConnections(params, 100);
+        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
+        
+        // Create and initialize scheme registry 
+        SchemeRegistry schemeRegistry = new SchemeRegistry();
+        schemeRegistry.register(
+                new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
+        schemeRegistry.register(
+                new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
+        
+        // Create an HttpClient with the ThreadSafeClientConnManager.
+        // This connection manager must be used if more than one thread will
+        // be using the HttpClient.
+        ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
+        HttpClient httpClient = new DefaultHttpClient(cm, params);
+        
+        // create an array of URIs to perform GETs on
+        String[] urisToGet = {
+            "http://jakarta.apache.org/",
+            "http://jakarta.apache.org/commons/",
+            "http://jakarta.apache.org/commons/httpclient/",
+            "http://cvs.apache.org/viewcvs.cgi/jakarta-commons/httpclient/"
+        };
+        
+        // create a thread for each URI
+        GetThread[] threads = new GetThread[urisToGet.length];
+        for (int i = 0; i < threads.length; i++) {
+            HttpGet httpget = new HttpGet(urisToGet[i]);
+            threads[i] = new GetThread(httpClient, httpget, i + 1);
+        }
+        
+        // start the threads
+        for (int j = 0; j < threads.length; j++) {
+            threads[j].start();
+        }
+        
+    }
+    
+    /**
+     * A thread that performs a GET.
+	 */
+    static class GetThread extends Thread {
+        
+        private HttpClient httpClient;
+        private HttpContext context;
+        private HttpGet httpget;
+        private int id;
+        
+        public GetThread(HttpClient httpClient, HttpGet httpget, int id) {
+            this.httpClient = httpClient;
+            this.context = new HttpClientContext(httpClient.getDefaultContext());
+            this.httpget = httpget;
+            this.id = id;
+        }
+        
+        /**
+         * Executes the GetMethod and prints some status information.
+         */
+        public void run() {
+            
+            System.out.println(id + " - about to get something from " + httpget.getURI());
+
+            try {
+                
+                // execute the method
+                HttpResponse response = httpClient.execute(httpget, context);
+                
+                System.out.println(id + " - get executed");
+                // get the response body as an array of bytes
+                HttpEntity entity = response.getEntity();
+                if (entity != null) {
+                    byte[] bytes = EntityUtils.toByteArray(entity);
+                    System.out.println(id + " - " + bytes.length + " bytes read");
+                }
+                
+            } catch (Exception e) {
+                httpget.abort();
+                System.out.println(id + " - error: " + e);
+            }
+        }
+       
+    }
+    
+}

Propchange: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java?view=diff&rev=554217&r1=554216&r2=554217
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java
(original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java
Sat Jul  7 08:03:22 2007
@@ -1,5 +1,5 @@
 /*
- * $Header$
+ * $HeadURL$
  * $Revision$
  * $Date$
  * ====================================================================
@@ -24,9 +24,6 @@
  * individuals on behalf of the Apache Software Foundation.  For more
  * information on the Apache Software Foundation, please see
  * <http://www.apache.org/>.
- *
- * [Additional notices, if required by prior licensing conditions]
- *
  */
 
 package org.apache.http.examples.client;



Mime
View raw message