Exemplo n.º 1
0
        /// <summary>
        /// 返回字符串
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="request"></param>
        /// <returns></returns>
        public string ExecuteReadString <T>(IBaiduRequest <T> request)
            where T : BaiduResponse
        {
            var queryString = BuildQueryString(request);

            return(GetResponseString(request.Host, request.Address, queryString));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 构建AK查询字符串
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="request"></param>
        /// <returns></returns>
        private string BuildAkQueryString <T>(IBaiduRequest <T> request)
            where T : BaiduResponse
        {
            var dictionary = request.GetParameters();

            dictionary.Add("ak", Ak);
            return(UrlUtil.BuildQuery(dictionary));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 构建SN查询字符串
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="request"></param>
        /// <returns></returns>
        private string BuildSNQueryString <T>(IBaiduRequest <T> request)
            where T : BaiduResponse
        {
            var dictionary = request.GetParameters();

            if (request.RequiredTimestamp)
            {
                // 用户未设置timestamp时自动增加,若已经设置timestamp,则使用用户设置的值
                if (!dictionary.ContainsKey("timestamp"))
                {
                    dictionary.Add("timestamp", DateTime.Now.ToTimestamp().ToString());
                }
            }

            var sn = AKSNCaculator.CaculateAKSN(Ak, Sk, request.Address, dictionary);

            dictionary.Add("sn", sn);
            return(UrlUtil.BuildQuery(dictionary));
        }
Exemplo n.º 4
0
 /// <summary>
 /// 异步调用返回字符串
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="request"></param>
 /// <returns></returns>
 public Task <string> ExecuteReadStringAsync <T>(IBaiduRequest <T> request)
     where T : BaiduResponse
 {
     return(Task.Run(() => ExecuteReadString(request)));
 }
Exemplo n.º 5
0
 /// <summary>
 /// 异步调用接口
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="request"></param>
 /// <returns></returns>
 public Task <T> ExecuteAsync <T>(IBaiduRequest <T> request)
     where T : BaiduResponse
 {
     return(Task.Run(() => Execute(request)));
 }
Exemplo n.º 6
0
 /// <summary>
 /// 构建查询字符串
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="request"></param>
 /// <returns></returns>
 private string BuildQueryString <T>(IBaiduRequest <T> request)
     where T : BaiduResponse
 {
     return(string.IsNullOrWhiteSpace(Sk) ? BuildAkQueryString(request) : BuildSNQueryString(request));
 }