コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }