in aliyun-net-credentials/Provider/URLCredentialProvider.cs [130:172]
private RefreshResult<CredentialModel> GetNewSessionCredentials(IConnClient client)
{
HttpRequest httpRequest = new HttpRequest(credentialsURI.ToString());
httpRequest.SetCommonUrlParameters();
httpRequest.Method = MethodType.GET;
httpRequest.ConnectTimeout = connectTimeout;
httpRequest.ReadTimeout = readTimeout;
HttpResponse httpResponse;
try
{
httpResponse = client.DoAction(httpRequest);
}
catch (Exception e)
{
throw new CredentialException("Failed to connect Server: " + credentialsURI.ToString() + e.ToString());
}
if (httpResponse.Status >= 300 || httpResponse.Status < 200)
{
throw new CredentialException("Failed to get credentials from server: " + credentialsURI.ToString() +
"\nHttpCode=" + httpResponse.Status +
"\nHttpRAWContent=" + httpResponse.GetHttpContentString());
}
Dictionary<string, string> map =
JsonConvert.DeserializeObject<Dictionary<string, string>>(httpResponse.GetHttpContentString());
if (map.ContainsKey("Code") && DictionaryUtil.Get(map, "Code") == "Success")
{
string expirationStr = DictionaryUtil.Get(map, "Expiration").Replace('T', ' ').Replace('Z', ' ');
var dt = Convert.ToDateTime(expirationStr);
long expiration = dt.GetTimeMillis();
CredentialModel credentialModel = new CredentialModel
{
Expiration = expiration,
Type = AuthConstant.CredentialsURI,
ProviderName = GetProviderName()
};
return new RefreshResult<CredentialModel>(credentialModel, GetStaleTime(expiration));
}
throw new CredentialException(JsonConvert.SerializeObject(map));
}