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.
Namespace
Google.Apis.ServicesAssembly
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 |
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 |