private static async Task HttpInvoke()

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;
            }
        }