public abstract class BaseClientService : object, IClientService, IDisposable
A base class for a client service which provides common mechanism for all services, like
serialization and GZip support. It should be safe to use a single service instance to make server requests
concurrently from multiple threads.
This class adds a special IHttpExecuteInterceptor to the
ConfigurableMessageHandler execute interceptor list, which uses the given
Authenticator. It calls to its applying authentication method, and injects the "Authorization" header in the
request.
If the given Authenticator implements IHttpUnsuccessfulResponseHandler, this
class adds the Authenticator to the ConfigurableMessageHandler's unsuccessful
response handler list.
Creates the back-off handler with ExponentialBackOff.
Overrides this method to change the default behavior of back-off handler (e.g. you can change the maximum
waited request's time span, or create a back-off handler with you own implementation of
IBackOff).
public void SetRequestSerailizedContent(HttpRequestMessage request, object body)
Sets the content of the request by the given body and the this service's configuration.
First the body object is serialized by the Serializer and then, if GZip is enabled, the content will be
wrapped in a GZip stream, otherwise a regular string stream will be used.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-05 UTC."],[[["The `BaseClientService` class is a fundamental component for creating client services, providing shared functionalities like serialization and GZip support, and is safe for concurrent server requests from multiple threads."],["This class uses `IHttpExecuteInterceptor` and `IHttpUnsuccessfulResponseHandler` to handle authentication and unsuccessful responses, injecting the \"Authorization\" header in requests when needed."],["It includes properties such as `ApiKey`, `ApplicationName`, `BasePath`, and `BaseUri` to configure the service's behavior, along with methods to serialize objects and manage request content."],["The `BaseClientService` provides a `HttpClient` and `HttpClientInitializer` to customize the HTTP client and message handler, as well as support for batch operations through `BatchPath` and `BatchUri`."],["It supports error and response deserialization through `DeserializeError` and `DeserializeResponse`, and allows for custom back-off strategies through `CreateBackOffHandler`."]]],[]]