private string GenPostData()
{
QueryCollection queries = new QueryCollection();
PropertyInfo[] propertyInfos = this.GetType().GetProperties(InstanceBindFlags);
if (propertyInfos == null || propertyInfos.Length == 0)
{
throw new Exception("Can not get class properties.");
}
foreach (var item in propertyInfos)
{
string name = item.Name;
if (name == "IsSignature")
{
continue;
}
object valueObj = item.GetValue(this, null);
string value = valueObj?.ToString();
queries.Add(name, value);
}
return(string.Join("&", queries.Select(t =>
{
if (string.Equals(t.Key, "domain", StringComparison.OrdinalIgnoreCase) ||
string.Equals(t.Key, "Signature") ||
string.Equals(t.Key, "recordline", StringComparison.OrdinalIgnoreCase) ||
string.Equals(t.Key, "subDomain", StringComparison.OrdinalIgnoreCase))
{
return $"{t.Key}={(t.Value ?? "")}";
}
else
{
return $"{HttpUtil.UrlEncode(t.Key)}={(t.Value == null ? "" : HttpUtil.UrlEncode(t.Value))}";
}
})));
}