All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.http.impl.client.DefaultHttpClient Maven / Gradle / Ivy

There is a newer version: 3.0.0-alpha-3
Show newest version
/*
 * ====================================================================
 * 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
 * .
 *
 */

package org.apache.http.impl.client;

import org.apache.http.HttpVersion;
import org.apache.http.annotation.Contract;
import org.apache.http.annotation.ThreadingBehavior;
import org.apache.http.client.protocol.RequestAddCookies;
import org.apache.http.client.protocol.RequestAuthCache;
import org.apache.http.client.protocol.RequestClientConnControl;
import org.apache.http.client.protocol.RequestDefaultHeaders;
import org.apache.http.client.protocol.RequestProxyAuthentication;
import org.apache.http.client.protocol.RequestTargetAuthentication;
import org.apache.http.client.protocol.ResponseProcessCookies;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.params.SyncBasicHttpParams;
import org.apache.http.protocol.BasicHttpProcessor;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.RequestContent;
import org.apache.http.protocol.RequestExpectContinue;
import org.apache.http.protocol.RequestTargetHost;
import org.apache.http.protocol.RequestUserAgent;
import org.apache.http.util.VersionInfo;

/**
 * Default implementation of {@link org.apache.http.client.HttpClient} pre-configured
 * for most common use scenarios.
 * 

* Please see the Javadoc for {@link #createHttpProcessor()} for the details of the interceptors * that are set up by default. *

* Additional interceptors can be added as follows, but * take care not to add the same interceptor more than once. *

 * DefaultHttpClient httpclient = new DefaultHttpClient();
 * httpclient.addRequestInterceptor(new RequestAcceptEncoding());
 * httpclient.addResponseInterceptor(new ResponseContentEncoding());
 * 
*

* This class sets up the following parameters if not explicitly set: *

    *
  • Version: HttpVersion.HTTP_1_1
  • *
  • ContentCharset: HTTP.DEFAULT_CONTENT_CHARSET
  • *
  • NoTcpDelay: true
  • *
  • SocketBufferSize: 8192
  • *
  • UserAgent: Apache-HttpClient/release (java 1.5)
  • *
*

* The following parameters can be used to customize the behavior of this * class: *

    *
  • {@link org.apache.http.params.CoreProtocolPNames#PROTOCOL_VERSION}
  • *
  • {@link org.apache.http.params.CoreProtocolPNames#STRICT_TRANSFER_ENCODING}
  • *
  • {@link org.apache.http.params.CoreProtocolPNames#HTTP_ELEMENT_CHARSET}
  • *
  • {@link org.apache.http.params.CoreProtocolPNames#USE_EXPECT_CONTINUE}
  • *
  • {@link org.apache.http.params.CoreProtocolPNames#WAIT_FOR_CONTINUE}
  • *
  • {@link org.apache.http.params.CoreProtocolPNames#USER_AGENT}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#TCP_NODELAY}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#SO_TIMEOUT}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#SO_LINGER}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#SO_REUSEADDR}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#CONNECTION_TIMEOUT}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#MAX_LINE_LENGTH}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#MAX_HEADER_COUNT}
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#STALE_CONNECTION_CHECK}
  • *
  • {@link org.apache.http.conn.params.ConnRoutePNames#FORCED_ROUTE}
  • *
  • {@link org.apache.http.conn.params.ConnRoutePNames#LOCAL_ADDRESS}
  • *
  • {@link org.apache.http.conn.params.ConnRoutePNames#DEFAULT_PROXY}
  • *
  • {@link org.apache.http.cookie.params.CookieSpecPNames#DATE_PATTERNS}
  • *
  • {@link org.apache.http.cookie.params.CookieSpecPNames#SINGLE_COOKIE_HEADER}
  • *
  • {@link org.apache.http.auth.params.AuthPNames#CREDENTIAL_CHARSET}
  • *
  • {@link org.apache.http.client.params.ClientPNames#COOKIE_POLICY}
  • *
  • {@link org.apache.http.client.params.ClientPNames#HANDLE_AUTHENTICATION}
  • *
  • {@link org.apache.http.client.params.ClientPNames#HANDLE_REDIRECTS}
  • *
  • {@link org.apache.http.client.params.ClientPNames#MAX_REDIRECTS}
  • *
  • {@link org.apache.http.client.params.ClientPNames#ALLOW_CIRCULAR_REDIRECTS}
  • *
  • {@link org.apache.http.client.params.ClientPNames#VIRTUAL_HOST}
  • *
  • {@link org.apache.http.client.params.ClientPNames#DEFAULT_HOST}
  • *
  • {@link org.apache.http.client.params.ClientPNames#DEFAULT_HEADERS}
  • *
  • {@link org.apache.http.client.params.ClientPNames#CONN_MANAGER_TIMEOUT}
  • *
* * @since 4.0 * * @deprecated (4.3) use {@link HttpClientBuilder} see also {@link CloseableHttpClient}. */ @Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL) @Deprecated public class DefaultHttpClient extends AbstractHttpClient { /** * Creates a new HTTP client from parameters and a connection manager. * * @param params the parameters * @param conman the connection manager */ public DefaultHttpClient( final ClientConnectionManager conman, final HttpParams params) { super(conman, params); } /** * @since 4.1 */ public DefaultHttpClient( final ClientConnectionManager conman) { super(conman, null); } public DefaultHttpClient(final HttpParams params) { super(null, params); } public DefaultHttpClient() { super(null, null); } /** * Creates the default set of HttpParams by invoking {@link DefaultHttpClient#setDefaultHttpParams(HttpParams)} * * @return a new instance of {@link SyncBasicHttpParams} with the defaults applied to it. */ @Override protected HttpParams createHttpParams() { final HttpParams params = new SyncBasicHttpParams(); setDefaultHttpParams(params); return params; } /** * Saves the default set of HttpParams in the provided parameter. * These are: *
    *
  • {@link org.apache.http.params.CoreProtocolPNames#PROTOCOL_VERSION}: * 1.1
  • *
  • {@link org.apache.http.params.CoreProtocolPNames#HTTP_CONTENT_CHARSET}: * ISO-8859-1
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#TCP_NODELAY}: * true
  • *
  • {@link org.apache.http.params.CoreConnectionPNames#SOCKET_BUFFER_SIZE}: * 8192
  • *
  • {@link org.apache.http.params.CoreProtocolPNames#USER_AGENT}: * Apache-HttpClient (Java 1.5)
  • *
*/ public static void setDefaultHttpParams(final HttpParams params) { HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, HTTP.DEF_CONTENT_CHARSET.name()); HttpConnectionParams.setTcpNoDelay(params, true); HttpConnectionParams.setSocketBufferSize(params, 8192); HttpProtocolParams.setUserAgent(params, VersionInfo.getUserAgent("Apache-HttpClient", "org.apache.http.client", DefaultHttpClient.class)); } /** * Create the processor with the following interceptors: *
    *
  • {@link RequestDefaultHeaders}
  • *
  • {@link RequestContent}
  • *
  • {@link RequestTargetHost}
  • *
  • {@link RequestClientConnControl}
  • *
  • {@link RequestUserAgent}
  • *
  • {@link RequestExpectContinue}
  • *
  • {@link RequestAddCookies}
  • *
  • {@link ResponseProcessCookies}
  • *
  • {@link RequestAuthCache}
  • *
  • {@link RequestTargetAuthentication}
  • *
  • {@link RequestProxyAuthentication}
  • *
*

* @return the processor with the added interceptors. */ @Override protected BasicHttpProcessor createHttpProcessor() { final BasicHttpProcessor httpproc = new BasicHttpProcessor(); httpproc.addInterceptor(new RequestDefaultHeaders()); // Required protocol interceptors httpproc.addInterceptor(new RequestContent()); httpproc.addInterceptor(new RequestTargetHost()); // Recommended protocol interceptors httpproc.addInterceptor(new RequestClientConnControl()); httpproc.addInterceptor(new RequestUserAgent()); httpproc.addInterceptor(new RequestExpectContinue()); // HTTP state management interceptors httpproc.addInterceptor(new RequestAddCookies()); httpproc.addInterceptor(new ResponseProcessCookies()); // HTTP authentication interceptors httpproc.addInterceptor(new RequestAuthCache()); httpproc.addInterceptor(new RequestTargetAuthentication()); httpproc.addInterceptor(new RequestProxyAuthentication()); return httpproc; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy