com.baidubce.http
Class BceHttpClient

java.lang.Object
  extended by com.baidubce.http.BceHttpClient

@ThreadSafe
public class BceHttpClient
extends Object


Field Summary
protected  BceClientConfiguration config
          Client configuration options, such as proxy settings, max retries, etc.
protected  org.apache.http.impl.client.CloseableHttpClient httpClient
          Internal client for sending HTTP requests
protected  Signer signer
           
 
Constructor Summary
BceHttpClient(BceClientConfiguration config, Signer signer)
          Constructs a new BCE client using the specified client configuration options (ex: max retry attempts, proxy settings, etc), and request metric collector.
BceHttpClient(BceClientConfiguration config, Signer signer, boolean isHttpAsyncPutEnabled)
          Constructs a new BCE Http Client with httpAsyncPutEnabled.
 
Method Summary
protected  org.apache.http.impl.nio.client.CloseableHttpAsyncClient createHttpAsyncClient(org.apache.http.nio.conn.NHttpClientConnectionManager connectionManager)
          Create asynchronous http client based on connection manager.
protected  org.apache.http.client.protocol.HttpClientContext createHttpContext(InternalRequest request)
          Creates HttpClient Context object based on the internal request.
protected  org.apache.http.client.methods.HttpRequestBase createHttpRequest(InternalRequest request)
          Creates HttpClient method object based on the specified request and populates any parameters, headers, etc.
protected  org.apache.http.nio.conn.NHttpClientConnectionManager createNHttpClientConnectionManager()
          Create connection manager for asynchronous http client.
<T extends AbstractBceResponse>
T
execute(InternalRequest request, Class<T> responseClass, HttpResponseHandler[] responseHandlers)
          Executes the request and returns the result.
protected  void finalize()
           
protected  long getDelayBeforeNextRetryInMillis(org.apache.http.client.methods.HttpRequestBase method, BceClientException exception, int attempt, RetryPolicy retryPolicy)
          Get delay time before next retry.
 void shutdown()
          Shuts down this HTTP client object, releasing any resources that might be held open.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

httpClient

protected org.apache.http.impl.client.CloseableHttpClient httpClient
Internal client for sending HTTP requests


config

protected BceClientConfiguration config
Client configuration options, such as proxy settings, max retries, etc.


signer

protected Signer signer
Constructor Detail

BceHttpClient

public BceHttpClient(BceClientConfiguration config,
                     Signer signer)
Constructs a new BCE client using the specified client configuration options (ex: max retry attempts, proxy settings, etc), and request metric collector.

Parameters:
config - Configuration options specifying how this client will communicate with BCE (ex: proxy settings, retry count, etc.).
signer - signer used to sign http requests
Throws:
IllegalArgumentException - If config or signer is null.

BceHttpClient

public BceHttpClient(BceClientConfiguration config,
                     Signer signer,
                     boolean isHttpAsyncPutEnabled)
Constructs a new BCE Http Client with httpAsyncPutEnabled.

Parameters:
config - Configuration options specifying how this client will communicate with BCE (ex: proxy settings, retry count, etc.).
signer - signer used to sign http requests
isHttpAsyncPutEnabled - whether use Async for PUT method.
Method Detail

execute

public <T extends AbstractBceResponse> T execute(InternalRequest request,
                                                 Class<T> responseClass,
                                                 HttpResponseHandler[] responseHandlers)
Executes the request and returns the result.

Type Parameters:
T - The type of response
Parameters:
request - The BCE request to send to the remote server
responseClass - A response handler to accept a successful response from the remote server
responseHandlers - A response handler to accept an unsuccessful response from the remote server
Returns:
The response from the remote server
Throws:
BceClientException - If any errors are encountered on the client while making the request or handling the response.
BceServiceException - If any errors occurred in BCE while processing the request.

shutdown

public void shutdown()
Shuts down this HTTP client object, releasing any resources that might be held open. This is an optional method, and callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client has been shutdown, it cannot be used to make more requests.


getDelayBeforeNextRetryInMillis

protected long getDelayBeforeNextRetryInMillis(org.apache.http.client.methods.HttpRequestBase method,
                                               BceClientException exception,
                                               int attempt,
                                               RetryPolicy retryPolicy)
Get delay time before next retry.

Parameters:
method - The current HTTP method being executed.
exception - The client/service exception from the failed request.
attempt - The number of times the current request has been attempted.
retryPolicy - The retryPolicy being used.
Returns:
The deley time before next retry.

createNHttpClientConnectionManager

protected org.apache.http.nio.conn.NHttpClientConnectionManager createNHttpClientConnectionManager()
                                                                                            throws org.apache.http.nio.reactor.IOReactorException
Create connection manager for asynchronous http client.

Returns:
Connection manager for asynchronous http client.
Throws:
org.apache.http.nio.reactor.IOReactorException - in case if a non-recoverable I/O error.

createHttpAsyncClient

protected org.apache.http.impl.nio.client.CloseableHttpAsyncClient createHttpAsyncClient(org.apache.http.nio.conn.NHttpClientConnectionManager connectionManager)
Create asynchronous http client based on connection manager.

Parameters:
connectionManager - Asynchronous http client connection manager.
Returns:
Asynchronous http client based on connection manager.

createHttpRequest

protected org.apache.http.client.methods.HttpRequestBase createHttpRequest(InternalRequest request)
Creates HttpClient method object based on the specified request and populates any parameters, headers, etc. from the internal request.

Parameters:
request - The request to convert to an HttpClient method object.
Returns:
The converted HttpClient method object with any parameters, headers, etc. from the original request set.

createHttpContext

protected org.apache.http.client.protocol.HttpClientContext createHttpContext(InternalRequest request)
Creates HttpClient Context object based on the internal request.

Parameters:
request - The internal request.
Returns:
HttpClient Context object.

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable


Copyright © 2018. All rights reserved.