## com.baidubce
Class AbstractBceClient

    java.lang.Object
      com.baidubce.AbstractBceClient

Direct Known Subclasses:
  BmrClient, BosClient, LssClient, MediaClient, MolaDbClient, SesClientSupport, SmsClientSupport, VodClient

    @ThreadSafe
    public abstract class AbstractBceClient

extends Object

Abstract base class for BCE service clients.

Responsible for basic client capabilities that are the same across all BCE SDK Java clients (ex: setting the client endpoint).

Subclass names should be in the form of "com.baidubce.services.xxx.XxxClient", while "xxx" is the service ID and "Xxx" is the capitalized service ID.

Field Summary
`protected BceClientConfiguration` `config` The client configuration for this client.
`static String` `DEFAULT_CONTENT_TYPE` The default http request content type for all BCE service APIs.
`static String` `DEFAULT_ENCODING` The default string encoding for all BCE service APIs.
`static String` `DEFAULT_SERVICE_DOMAIN` The default service domain for BCE.
`static String` `URL_PREFIX` The common URL prefix for all BCE service APIs.

Constructor Summary
`AbstractBceClient(BceClientConfiguration config, HttpResponseHandler[] responseHandlers)` constructor with isHttpAsyncPutEnabled default value : false
`AbstractBceClient(BceClientConfiguration config, HttpResponseHandler[] responseHandlers, boolean isHttpAsyncPutEnabled)` Constructs a new AbstractBceClient with the specified client configuration and handlers.

Method Summary
`BceHttpClient` `getClient()`
`URI` `getEndpoint()` Returns the service endpoint to which this client will send requests.
`String` `getServiceId()` Returns the target service ID.

`protected

`<T extends AbstractBceResponse> T`

`

`invokeHttpClient(InternalRequest request, Class<T> responseClass)`
Subclasses should invoke this method for sending request to the target service.

`boolean` `isRegionSupported()` Returns true if the target service supports regions.
`void` `setClient(BceHttpClient client)`
`void` `shutdown()` Shuts down the client and releases all underlying resources.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_SERVICE_DOMAIN

    public static final String DEFAULT_SERVICE_DOMAIN

  The default service domain for BCE.

  See Also:
    Constant Field Values

### URL_PREFIX

    public static final String URL_PREFIX

  The common URL prefix for all BCE service APIs.

  See Also:
    Constant Field Values

### DEFAULT_ENCODING

    public static final String DEFAULT_ENCODING

  The default string encoding for all BCE service APIs.

  See Also:
    Constant Field Values

### DEFAULT_CONTENT_TYPE

    public static final String DEFAULT_CONTENT_TYPE

  The default http request content type for all BCE service APIs.

  See Also:
    Constant Field Values

### config

    protected BceClientConfiguration config

  The client configuration for this client.

Constructor Detail

### AbstractBceClient

    public AbstractBceClient(BceClientConfiguration config,
                             HttpResponseHandler[] responseHandlers,
                             boolean isHttpAsyncPutEnabled)

  Constructs a new AbstractBceClient with the specified client configuration and handlers.

  The constructor will extract serviceId from the class name automatically. And if there is no endpoint specified in the client configuration, the constructor will create a default one.

  Parameters:
    `config` - the client configuration. The constructor makes a copy of this parameter so that it is safe to change the configuration after then.
    `responseHandlers` - a list of handlers for processing HTTP responses from services. See `BceHttpClient.execute(InternalRequest, Class, HttpResponseHandler[])`
    `isHttpAsyncPutEnabled` - whether or not PUT method use Async manner.
  Throws:
    `IllegalStateException` - if the class name does not follow the naming convention for BCE clients.
    `IllegalArgumentException` - if the endpoint specified in the client configuration is not a valid URI.

### AbstractBceClient

    public AbstractBceClient(BceClientConfiguration config,
                             HttpResponseHandler[] responseHandlers)

  constructor with isHttpAsyncPutEnabled default value : false

Method Detail

### isRegionSupported

    public boolean isRegionSupported()

  Returns true if the target service supports regions.

  The result will impact the construction of default service endpoint.

  Returns:
    true if the target service supports regions.

### getEndpoint

    public URI getEndpoint()

  Returns the service endpoint to which this client will send requests.

  Returns:
    the service endpoint to which this client will send requests.

### getServiceId

    public String getServiceId()

  Returns the target service ID.

  Returns:
    the target service ID.

### getClient

    public BceHttpClient getClient()

### setClient

    public void setClient(BceHttpClient client)

### shutdown

    public void shutdown()

  Shuts down the client and releases all underlying resources.

  Invoking this method is NOT a must. Once it is called, no subsequent requests should be made.

### invokeHttpClient

    protected <T extends AbstractBceResponse> T invokeHttpClient(InternalRequest request,
                                                                 Class<T> responseClass)

  Subclasses should invoke this method for sending request to the target service.

  This method will add "Content-Type" and "Date" to headers with default values if not present.

  Parameters:
    `request` - the request to build up the HTTP request.
    `responseClass` - the response class.
  Returns:
    the final response object.

Copyright © 2016. All rights reserved.