public static async Task HttpInvoke()

in src/Cli/func/Arm/ArmClient.cs [34:83]


        public static async Task<HttpResponseMessage> HttpInvoke(string method, Uri uri, string accessToken, object objectPayload = null, int retryCount = 3)
        {
            var socketTrials = 10;
            var retries = retryCount;
            while (true)
            {
                try
                {
                    var response = await HttpInvoke(uri, method, accessToken, objectPayload);

                    if (!response.IsSuccessStatusCode && retryCount > 0)
                    {
                        while (retries > 0)
                        {
                            response = await HttpInvoke(uri, method, accessToken, objectPayload);
                            if (response.IsSuccessStatusCode)
                            {
                                return response;
                            }
                            else
                            {
                                retries--;
                            }
                        }
                    }

                    return response;
                }
                catch (SocketException)
                {
                    if (socketTrials <= 0)
                    {
                        throw;
                    }

                    socketTrials--;
                }
                catch (Exception)
                {
                    if (retries <= 0)
                    {
                        throw;
                    }

                    retries--;
                }

                await Task.Delay(_random.Next(1000, 10000));
            }
        }