private Dictionary <string, string> FormatRequestData(string action, Dictionary <string, string> param) { param.Add("Action", action); param.Add("RequestClient", this.SdkVersion); param.Add("Nonce", Math.Abs(new Random().Next()).ToString()); long unixTime = ToTimestamp(); param.Add("Timestamp", (unixTime / 1000).ToString()); param.Add("Version", this.ApiVersion); if (!string.IsNullOrEmpty(this.Credential.SecretId)) { param.Add("SecretId", this.Credential.SecretId); } if (!string.IsNullOrEmpty(this.Region)) { param.Add("Region", this.Region); } if (!string.IsNullOrEmpty(this.Profile.SignMethod)) { param.Add("SignatureMethod", this.Profile.SignMethod); } if (!string.IsNullOrEmpty(this.Credential.Token)) { param.Add("Token", this.Credential.Token); } string endpoint = this.Endpoint; if (!string.IsNullOrEmpty(this.Profile.HttpProfile.Endpoint)) { endpoint = this.Profile.HttpProfile.Endpoint; } string sigInParam = SignHelper.MakeSignPlainText(new SortedDictionary <string, string>(param, StringComparer.Ordinal), this.Profile.HttpProfile.ReqMethod, endpoint, this.Path); string sigOutParam = SignHelper.Sign(this.Credential.SecretKey, sigInParam, this.Profile.SignMethod); param.Add("Signature", sigOutParam); return(param); }