示例#1
0
        /// <summary>
        /// 创建GET请求URL参数
        /// </summary>
        /// <param name="request">api请求参数</param>
        /// <param name="APIDoman">api域名地址</param>
        /// <param name="accessToken">令牌值</param>
        /// <returns>api请求完整地址</returns>
        protected virtual string CreateGETParameter <TResponse> (GETRequest <TResponse> request, string APIDoman, string accessToken) where TResponse : BaseResponse
        {
            List <string> parameters = new List <string> ();

            foreach (var item_parameters in request.GetParameters())
            {
                parameters.Add($"{item_parameters.Key}={item_parameters.Value}");
            }
            return(string.Join("&", parameters.ToArray()));
        }
示例#2
0
        /// <summary>
        /// 执行GET请求
        /// </summary>
        /// <typeparam name="TResponse">响应</typeparam>
        /// <param name="request">请求参数</param>
        /// <param name="accessToken">令牌值</param>
        /// <returns>响应参数</returns>
        public async Task <TResponse> ExecuteAsync <TResponse> (GETRequest <TResponse> request, string accessToken = null)
            where TResponse : BaseResponse
        {
            var _accessToken = accessToken ?? AccessToken;
            Uri base_uri     = CreateGETUrl(APIDoman, request.APIName, request.APIVersion, _accessToken);

            var get_url          = new Uri($"{base_uri.AbsoluteUri.TrimEnd('/','\\')}{(string.IsNullOrWhiteSpace (base_uri?.Query) ? "?" : "&")}{ CreateGETParameter (request, APIDoman, _accessToken)}");
            var httpmsg_response = await HTTPClient.GetAsync(get_url);

            string response = await httpmsg_response.Content.ReadAsStringAsync();

            try {
                return(response.ToJsonObj <TResponse> ());
            } catch (Newtonsoft.Json.JsonReaderException) {
                throw new Newtonsoft.Json.JsonReaderException($"未识别的JSON字符串:{response}");
            }
        }
        public void CheckForUpdates(bool isAutoCheck = false)
        {
            // Mark if request is auto or manual check
            m_isAutomaticCheck = isAutoCheck;

            string _productName        = GetGlobalIdentificationForThisProduct();
            string _productDetailsPath = string.Format(kProductDetailsPathFormat, _productName);
            URL    _URL = URL.URLWithString(kServerBaseAddress, _productDetailsPath);

            // Start asynchronous request
            GETRequest _request = GETRequest.CreateAsyncRequest(_URL, null);

            _request.OnSuccess = RequestForUpdatesSuccess;
            _request.OnFailure = RequestForUpdatesFailed;

            // Start request
            _request.StartRequest();

            // Cache request
            m_updateGETRequest = _request;
        }
示例#4
0
        public void CheckForUpdates()
        {
            if (m_updateGETRequest != null)
            {
                return;
            }

            string _productName        = GetGlobalIdentificationForThisProduct();
            string _productDetailsPath = string.Format(kProductDetailsPathFormat, _productName);
            URL    _URL = URL.URLWithString(kServerBaseAddress, _productDetailsPath);

            // Start asynchronous request
            GETRequest _request = GETRequest.CreateAsyncRequest(_URL, null);

            _request.OnSuccess = RequestForUpdatesSuccess;
            _request.OnFailure = RequestForUpdatesFailed;
            _request.StartRequest();

            // Cache request
            m_updateGETRequest = _request;
        }
 private void ResetFieldsRelatedToUpdateCheck()
 {
     m_isAutomaticCheck = false;
     m_updateGETRequest = null;
 }
示例#6
0
 private void ResetFieldsRelatedToUpdateCheck()
 {
     m_updateGETRequest = null;
 }
示例#7
0
 /// <summary>
 /// 执行GET请求
 /// </summary>
 /// <typeparam name="TResponse">响应</typeparam>
 /// <param name="request">请求参数</param>
 /// <param name="accessToken">令牌值</param>
 /// <returns>响应参数</returns>
 public TResponse Execute <TResponse> (GETRequest <TResponse> request, string accessToken = null)
     where TResponse : BaseResponse
 {
     return(ExecuteAsync(request, accessToken).Result);
 }