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