コード例 #1
0
ファイル: ApiUriDispatcher.cs プロジェクト: stonezhu870/never
 /// <summary>
 /// 合成Url
 /// </summary>
 /// <param name="request"></param>
 /// <param name="route"></param>
 /// <returns></returns>
 public virtual UrlConcat ConcatApiUrl(IRoutePrimaryKeySelect request, string route)
 {
     return(new UrlConcat()
     {
         Host = this.GetCurrentUrlHost(request), Route = route, Option = UrlConcatOption.Concat
     });
 }
コード例 #2
0
ファイル: ApiUriDispatcher.cs プロジェクト: stonezhu870/never
        /// <summary>
        /// 获取Url,如果该组的资源在脱机状态下,则将该次索引指向下一组资源中
        /// </summary>
        /// <param name="routePrimaryKey">api路由主键</param>
        /// <param name="matchA10Content">匹配A10请求回来的内容</param>
        /// <returns></returns>
        private string GetCurrentApiUrlHost(IRoutePrimaryKeySelect routePrimaryKey, System.Func <string, bool> matchA10Content)
        {
            var temp = this.A10HealthReport.GetReport(this.ApiRouteProvider.Group);

            if (temp.IsNullOrEmpty())
            {
                return(string.Empty);
            }

            var matchs = this.Select(temp, matchA10Content);

            if (matchs.IsNullOrEmpty())
            {
                return(null);
            }

            var index = this.SumASCII(routePrimaryKey == null ? Randomizer.Next(matchs.Count()).ToString() : routePrimaryKey.PrimaryKey) % matchs.Count();

            return(matchs[index].ApiUri);
        }
コード例 #3
0
ファイル: ApiUriDispatcher.cs プロジェクト: stonezhu870/never
 /// <summary>
 /// 以Get方式发送请求
 /// </summary>
 /// <param name="jsonSerializer">json序列化</param>
 /// <param name="request">参数请求</param>
 /// <param name="requestPara">请求参数集合.</param>
 /// <param name="route">路由标识</param>
 /// <param name="headerParams">放在header参数.</param>
 /// <param name="timeout">过期时间,以毫秒为单位</param>
 /// <returns></returns>
 public void Get(IJsonSerializer jsonSerializer, IRoutePrimaryKeySelect request, string route, IDictionary <string, string> requestPara, IDictionary <string, string> headerParams, int timeout = 30000)
 {
     this.Get(jsonSerializer, this.ConcatApiUrl(request, route), requestPara, headerParams, timeout);
 }
コード例 #4
0
ファイル: ApiUriDispatcher.cs プロジェクト: stonezhu870/never
 /// <summary>
 /// 以Post方式发送请求
 /// </summary>
 /// <param name="jsonSerializer">json序列化</param>
 /// <param name="request">参数请求</param>
 /// <param name="jsonDate">json请求内容</param>
 /// <param name="route">路由标识</param>
 /// <param name="headerParams">放在header参数.</param>
 /// <param name="timeout">过期时间,以毫秒为单位</param>
 /// <returns></returns>
 public void Post(IJsonSerializer jsonSerializer, IRoutePrimaryKeySelect request, string route, string jsonDate, IDictionary <string, string> headerParams, int timeout = 30000)
 {
     this.Post(jsonSerializer, this.ConcatApiUrl(request, route), jsonDate, headerParams);
 }
コード例 #5
0
ファイル: ApiUriDispatcher.cs プロジェクト: stonezhu870/never
 /// <summary>
 /// 获取Url,如果该组的资源在脱机状态下,则将该次索引指向下一组资源中
 /// </summary>
 /// <param name="routePrimaryKey">api路由主键</param>
 /// <returns></returns>
 public string GetCurrentUrlHost(IRoutePrimaryKeySelect routePrimaryKey)
 {
     return(this.GetCurrentApiUrlHost(routePrimaryKey, this.ApiRouteProvider.A10ContentMatch));
 }