in src/Cli/func/Arm/ArmClient.cs [85:136]
private static async Task<HttpResponseMessage> HttpInvoke(Uri uri, string verb, string accessToken, object objectPayload)
{
var payload = JsonConvert.SerializeObject(objectPayload);
HttpMessageHandler handler = _testHandler ?? new HttpClientHandler();
if (StaticSettings.IsDebug)
{
handler = new LoggingHandler(handler);
}
using (var client = new HttpClient(handler))
{
const string jsonContentType = "application/json";
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");
client.DefaultRequestHeaders.Add("User-Agent", Constants.CliUserAgent);
client.DefaultRequestHeaders.Add("Accept", jsonContentType);
client.DefaultRequestHeaders.Add("x-ms-request-id", Guid.NewGuid().ToString());
HttpResponseMessage response = null;
if (string.Equals(verb, "get", StringComparison.OrdinalIgnoreCase))
{
response = await client.GetAsync(uri).ConfigureAwait(false);
}
else if (string.Equals(verb, "delete", StringComparison.OrdinalIgnoreCase))
{
response = await client.DeleteAsync(uri).ConfigureAwait(false);
}
else if (string.Equals(verb, "post", StringComparison.OrdinalIgnoreCase))
{
response = await client.PostAsync(uri, new StringContent(payload ?? string.Empty, Encoding.UTF8, jsonContentType)).ConfigureAwait(false);
}
else if (string.Equals(verb, "put", StringComparison.OrdinalIgnoreCase))
{
response = await client.PutAsync(uri, new StringContent(payload ?? string.Empty, Encoding.UTF8, jsonContentType)).ConfigureAwait(false);
}
else if (string.Equals(verb, "patch", StringComparison.OrdinalIgnoreCase))
{
using (var message = new HttpRequestMessage(new HttpMethod("PATCH"), uri))
{
message.Content = new StringContent(payload ?? string.Empty, Encoding.UTF8, jsonContentType);
response = await client.SendAsync(message).ConfigureAwait(false);
}
}
else
{
throw new InvalidOperationException(string.Format("Invalid http verb '{0}'!", verb));
}
return response;
}
}