SyncClient

trait SyncClient extends SyncClientCompat with ClientFactory[SyncClient] with AutoCloseable

A standard blocking http client interface

trait AutoCloseable
class Object
trait Matchable
class Any

Value members

Abstract methods

protected def channel: HttpChannel

Concrete methods

def callInternal[Req, Resp](req: Request, requestSurface: Surface, responseSurface: Surface, requestContent: Req): Resp
def readAsInternal[Resp](req: Request, responseSurface: Surface): Resp
def rpc[Req, Resp](method: RPCMethod, requestContent: Req): Resp

Send an RPC request (POST) and return the RPC response. This method will throw RPCException when an error happens

Send an RPC request (POST) and return the RPC response. This method will throw RPCException when an error happens

def send(req: Request, clientContext: ClientContext): Response

Send an HTTP request and get the response. It will throw an exception for non-successful responses. For example, when receiving non-retryable status code (e.g., 4xx), it will throw HttpClientException. For server side failures (5xx responses), this continues request retry until the max retry count.

Send an HTTP request and get the response. It will throw an exception for non-successful responses. For example, when receiving non-retryable status code (e.g., 4xx), it will throw HttpClientException. For server side failures (5xx responses), this continues request retry until the max retry count.

If it exceeds the number of max retry attempts, HttpClientMaxRetryException will be thrown.

Throws:
HttpClientException

for non-retryable error is occurred

HttpClientMaxRetryException

if max retry reaches

def sendSafe(req: Request, context: ClientContext): Response

Send an HTTP request and returns a response (or the last response if the request is retried). Unlike send, this method returns a regular Http Response object even for non-retryable responses (e.g., 4xx error code). For retryable responses (e.g., 5xx) this continues retry until the max retry count.

Send an HTTP request and returns a response (or the last response if the request is retried). Unlike send, this method returns a regular Http Response object even for non-retryable responses (e.g., 4xx error code). For retryable responses (e.g., 5xx) this continues retry until the max retry count.

After reaching the max retry count, it will return a the last response even for 5xx status code.

Inherited methods

protected def build(newConfig: HttpClientConfig): ClientImpl

Create a new client sharing the same underlying http client

Create a new client sharing the same underlying http client

Inherited from:
ClientFactory
inline def call[Req, Resp](req: Request, requestContent: Req): Resp
Inherited from:
SyncClientCompat
def close(): Unit
Inherited from:
AutoCloseable
inline def readAs[Resp](req: Request): Resp

Read the response as a specified type

Read the response as a specified type

Returns:

a response translated to the specified type

Throws:
HttpClientException

if failed to read or process the response

Inherited from:
SyncClientCompat
def withCircuitBreaker(filter: CircuitBreaker => CircuitBreaker): ClientImpl
Inherited from:
ClientFactory
def withClientFilter(filter: ClientFilter): ClientImpl
Inherited from:
ClientFactory
def withConfig(filter: HttpClientConfig => HttpClientConfig): ClientImpl
Inherited from:
ClientFactory
def withConnectTimeout(duration: Duration): ClientImpl
Inherited from:
ClientFactory
def withReadTimeout(duration: Duration): ClientImpl
Inherited from:
ClientFactory
def withRequestFilter(requestFilter: Request => Request): ClientImpl
Inherited from:
ClientFactory
def withRetryContext(filter: RetryContext => RetryContext): ClientImpl
Inherited from:
ClientFactory