Class BaseClientService (1.68.0)

public abstract class BaseClientService : 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.

Inheritance

object > BaseClientService

Namespace

Google.Apis.Services

Assembly

Google.Apis.dll

Constructors

BaseClientService(Initializer)

protected BaseClientService(BaseClientService.Initializer initializer)

Constructs a new base client with the specified initializer.

Parameter
Name Description
initializer BaseClientServiceInitializer

Fields

DefaultMaxUrlLength

public const uint DefaultMaxUrlLength = 2048

The default maximum allowed length of a URL string for GET requests.

Field Value
Type Description
uint

Properties

ApiKey

public string ApiKey { get; }

Gets the API-Key (DeveloperKey) which this service uses for all requests.

Property Value
Type Description
string

ApplicationName

public string ApplicationName { get; }

Gets the application name to be used in the User-Agent header.

Property Value
Type Description
string

BasePath

public abstract string BasePath { get; }

Gets the BasePath of the service.

Property Value
Type Description
string

BaseUri

public abstract string BaseUri { get; }

Gets the BaseUri of the service. All request paths should be relative to this URI.

Property Value
Type Description
string

BaseUriOverride

protected string BaseUriOverride { get; }

The BaseUri provided in the initializer, which may be null.

Property Value
Type Description
string

BatchPath

public virtual string BatchPath { get; }

The path used for batch operations.

Property Value
Type Description
string

BatchUri

public virtual string BatchUri { get; }

The URI used for batch operations.

Property Value
Type Description
string

Features

public abstract IList<string> Features { get; }

Gets the supported features by this service.

Property Value
Type Description
IListstring

GZipEnabled

public bool GZipEnabled { get; }

Gets or sets whether this service supports GZip.

Property Value
Type Description
bool

HttpClient

public ConfigurableHttpClient HttpClient { get; }

Gets the HTTP client which is used to create requests.

Property Value
Type Description
ConfigurableHttpClient

HttpClientInitializer

public IConfigurableHttpClientInitializer HttpClientInitializer { get; }

Gets a HTTP client initializer which is able to custom properties on ConfigurableHttpClient and ConfigurableMessageHandler.

Property Value
Type Description
IConfigurableHttpClientInitializer

Name

public abstract string Name { get; }

Gets the service name.

Property Value
Type Description
string

Serializer

public ISerializer Serializer { get; }

Gets the Serializer used by this service.

Property Value
Type Description
ISerializer

UniverseDomain

public string UniverseDomain { get; set; }

The universe domain to connect to, or null to use the default universe domain DefaultUniverseDomain.

Property Value
Type Description
string
Remarks

UniverseDomain is used to build the endpoint to connect to, unless BaseUriOverride is set, in which case BaseUriOverride will be used without further modification.

Methods

CreateBackOffHandler()

protected virtual BackOffHandler CreateBackOffHandler()

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).

Returns
Type Description
BackOffHandler

DeserializeError(HttpResponseMessage)

public virtual Task<RequestError> DeserializeError(HttpResponseMessage response)

Deserializes an error response into a RequestError object.

Parameter
Name Description
response HttpResponseMessage
Returns
Type Description
TaskRequestError
Exceptions
Type Description
GoogleApiException

If no error is found in the response.

DeserializeResponse<T>(HttpResponseMessage)

public virtual Task<T> DeserializeResponse<T>(HttpResponseMessage response)

Deserializes a response into the specified object.

Parameter
Name Description
response HttpResponseMessage
Returns
Type Description
Task
Type Parameter
Name Description
T

Dispose()

public virtual void Dispose()

GetEffectiveUri(string, string)

protected string GetEffectiveUri(string explicitUri, string defaultUri)

Gets the effective URI taking into account the UniverseDomain.

Parameters
Name Description
explicitUri string

An explicit URI. May be null.

defaultUri string

A default URI. May be null.

Returns
Type Description
string

SerializeObject(object)

public virtual string SerializeObject(object obj)

Serializes an object into a string representation.

Parameter
Name Description
obj object
Returns
Type Description
string

SetRequestSerailizedContent(HttpRequestMessage, object)

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.

Parameters
Name Description
request HttpRequestMessage
body object

Extension Method