/// <summary> /// 构建请求参数 /// </summary> /// <typeparam name="T">请求参数类型</typeparam> /// <param name="request">请求参数对象</param> /// <returns></returns> private Dictionary <string, object> BuildParams <T>(ISoouuRequest <T> request) where T : SoouuResponse { Dictionary <string, object> parameters = new Dictionary <string, object> { { "customerid", customerId }, { "format", format }, { "timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }, { "v", "1.0" } }; Type t = request.GetType(); PropertyInfo[] props = t.GetProperties(); foreach (PropertyInfo prop in props) { string pName = prop.Name; if (pName != "sign") { object pValue = t.GetProperty(pName)?.GetValue(request); if (!parameters.ContainsKey(pName) && !string.IsNullOrEmpty(pValue?.ToString())) { parameters.Add(pName, pValue); } } } return(parameters); }
/// <summary> /// 请求API返回数据列表 /// </summary> /// <typeparam name="T">请求参数类型</typeparam> /// <param name="request">请求参数对象</param> /// <returns></returns> public List <T> QueryList <T>(ISoouuRequest <T> request) where T : SoouuResponse { string message; Dictionary <string, object> parameters = BuildParams(request); string sign = HttpUtils.SignRequest(parameters, secret); parameters.Add("sign", sign); string result = HttpUtils.Get(url, out message, parameters, 10); List <T> t = result.JsonDeserialize <List <T> >(); return(t); }