Пример #1
0
        /// <summary>
        /// 格式化Consul Api查询结果
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="response"></param>
        /// <returns></returns>
        internal static async Task <ConsulApiQueryResult <string> > formatConsulApiQueryResultAsync(this HttpResponseMessage response)
        {
            var queryResult = new ConsulApiQueryResult <string>();

            queryResult.StatusCode = response.StatusCode;

            if (response.IsSuccessStatusCode)
            {
                queryResult.ResponseData = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
            }

            return(queryResult);
        }
Пример #2
0
        /// <summary>
        /// 获取key/value信息
        /// </summary>
        /// <param name="key">键</param>
        /// <returns></returns>
        public async Task <ConsulApiQueryResult <ConsulKVPair> > kvGetAsync(string key)
        {
            var getKVApiUrl = string.Format("{0}/{1}", kvApiUrl, key);

            var response = await httpClient.GetAsync(getKVApiUrl).ConfigureAwait(false);

            var queryResult = await response.formatConsulApiQueryResultAsync <ConsulKVPair[]>().ConfigureAwait(false);

            var result = new ConsulApiQueryResult <ConsulKVPair> {
                StatusCode = queryResult.StatusCode
            };

            if (queryResult.ResponseData != null && queryResult.ResponseData.Length > 0)
            {
                result.ResponseData = queryResult.ResponseData[0];
            }
            return(result);
        }