/// <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())); }
/// <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; }
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; }
private void ResetFieldsRelatedToUpdateCheck() { m_updateGETRequest = null; }
/// <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); }