@ThreadSafe public abstract class AbstractBceClient extends Object
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.
| Modifier and Type | Field and Description |
|---|---|
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 and Description |
|---|
AbstractBceClient(BceClientConfiguration config,
HttpResponseHandler[] responseHandlers)
Equivalent to AbstractBceClient(config, responseHandlers, false)
|
AbstractBceClient(BceClientConfiguration config,
HttpResponseHandler[] responseHandlers,
boolean isHttpAsyncPutEnabled)
Constructs a new AbstractBceClient with the specified client configuration and handlers.
|
| Modifier and Type | Method and Description |
|---|---|
void |
computeBktVirEndpoint(String bucketName)
BOS
Returns the bucket virtual hosting service endpoint.
|
String |
computeServiceId()
Returns the service ID based on the actual class name.
|
URI |
getBktVirEndpoint(String bucketName)
Returns the service endpoint(bucket virtual hosting) to which this client will send requests.
|
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> |
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.
|
public static final String DEFAULT_SERVICE_DOMAIN
public static final String URL_PREFIX
public static final String DEFAULT_ENCODING
public static final String DEFAULT_CONTENT_TYPE
protected BceClientConfiguration config
public AbstractBceClient(BceClientConfiguration config, HttpResponseHandler[] responseHandlers, boolean isHttpAsyncPutEnabled)
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.
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.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.public AbstractBceClient(BceClientConfiguration config, HttpResponseHandler[] responseHandlers)
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[])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.public boolean isRegionSupported()
The result will impact the construction of default service endpoint.
public URI getEndpoint()
public String getServiceId()
public BceHttpClient getClient()
public void setClient(BceHttpClient client)
public void shutdown()
Invoking this method is NOT a must. Once it is called, no subsequent requests should be made.
protected <T extends AbstractBceResponse> T invokeHttpClient(InternalRequest request, Class<T> responseClass)
This method will add "Content-Type" and "Date" to headers with default values if not present.
T - the type of responserequest - the request to build up the HTTP request.responseClass - the response class.public String computeServiceId()
The class name should be in the form of "com.baidubce.services.xxx.XxxClient", while "xxx" is the service ID and "Xxx" is the capitalized service ID.
IllegalStateException - if the class name does not follow the naming convention for BCE clients.public URI getBktVirEndpoint(String bucketName)
public void computeBktVirEndpoint(String bucketName)
The endpoint will be in the form of "http(s)://
IllegalArgumentException - if the endpoint specified in the client configuration is not a valid URI.Copyright © 2023. All rights reserved.