private string GetMetadata()

in aliyun-net-credentials/Provider/EcsRamRoleCredentialProvider.cs [222:260]


        private string GetMetadata(IConnClient client, string url)
        {
            HttpRequest httpRequest = new HttpRequest
            {
                Method = MethodType.GET,
                ConnectTimeout = connectTimeout,
                ReadTimeout = readTimeout,
                Url = url
            };

            var metadataToken = GetMetadataToken(client);
            if (metadataToken != null)
            {
                httpRequest.Headers.Add("X-aliyun-ecs-metadata-token", metadataToken);
            }

            HttpResponse httpResponse;
            try
            {
                httpResponse = client.DoAction(httpRequest);
            }
            catch (Exception ex)
            {
                throw new CredentialException("Failed to connect ECS Metadata Service: " + ex.GetType() + ": " +
                                              ex.Message);
            }

            if (httpResponse != null && httpResponse.Status == 404)
            {
                throw new CredentialException("The role name was not found in the instance");
            }

            if (httpResponse != null && httpResponse.Status != 200)
            {
                throw new CredentialException(EcsMetadataFetchErrorMsg + " HttpCode=" + httpResponse.Status);
            }

            return httpResponse.GetHttpContentString();
        }