Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information.
/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. */
package com.microsoft.azure; import com.google.common.hash.Hashing; import com.microsoft.azure.serializer.AzureJacksonAdapter; import com.microsoft.rest.RestClient; import com.microsoft.rest.ServiceClient; import com.microsoft.rest.credentials.ServiceClientCredentials; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import java.net.NetworkInterface; import java.util.Enumeration;
ServiceClient is the abstraction for accessing REST operations and their payload data types.
/** * ServiceClient is the abstraction for accessing REST operations and their payload data types. */
public abstract class AzureServiceClient extends ServiceClient { protected AzureServiceClient(String baseUrl, ServiceClientCredentials credentials) { this(baseUrl, credentials, new OkHttpClient.Builder(), new Retrofit.Builder()); }
Initializes a new instance of the ServiceClient class.
Params:
  • baseUrl – the service base uri
  • credentials – the credentials
  • clientBuilder – the http client builder
  • restBuilder – the retrofit rest client builder
/** * Initializes a new instance of the ServiceClient class. * * @param baseUrl the service base uri * @param credentials the credentials * @param clientBuilder the http client builder * @param restBuilder the retrofit rest client builder */
protected AzureServiceClient(String baseUrl, ServiceClientCredentials credentials, OkHttpClient.Builder clientBuilder, Retrofit.Builder restBuilder) { this(new RestClient.Builder(clientBuilder, restBuilder) .withBaseUrl(baseUrl) .withCredentials(credentials) .withSerializerAdapter(new AzureJacksonAdapter()) .withResponseBuilderFactory(new AzureResponseBuilder.Factory()) .build()); }
Initializes a new instance of the ServiceClient class.
Params:
  • restClient – the REST client
/** * Initializes a new instance of the ServiceClient class. * * @param restClient the REST client */
protected AzureServiceClient(RestClient restClient) { super(restClient); }
The default User-Agent header. Override this method to override the user agent.
Returns:the user agent string.
/** * The default User-Agent header. Override this method to override the user agent. * * @return the user agent string. */
public String userAgent() { return String.format("Azure-SDK-For-Java/%s OS:%s MacAddressHash:%s Java:%s", getClass().getPackage().getImplementationVersion(), OS, MAC_ADDRESS_HASH, JAVA_VERSION); } private static final String MAC_ADDRESS_HASH; private static final String OS; private static final String JAVA_VERSION; static { OS = System.getProperty("os.name") + "/" + System.getProperty("os.version"); String macAddress = "Unknown"; try { Enumeration<NetworkInterface> networks = NetworkInterface.getNetworkInterfaces(); while (networks.hasMoreElements()) { NetworkInterface network = networks.nextElement(); byte[] mac = network.getHardwareAddress(); if (mac != null) { macAddress = Hashing.sha256().hashBytes(mac).toString(); break; } } } catch (Throwable t) { // It's okay ignore mac address hash telemetry } MAC_ADDRESS_HASH = macAddress; String version = System.getProperty("java.version"); JAVA_VERSION = version != null ? version : "Unknown"; } }