/// <summary> /// 执行POST请求 /// </summary> /// <typeparam name="TResponse">响应</typeparam> /// <typeparam name="TMODELRequest">请求模型</typeparam> /// <typeparam name="TModelResponse">响应模型</typeparam> /// <param name="request">请求参数</param> /// <param name="accessToken">令牌值</param> /// <returns>响应参数</returns> public TResponse Execute <TResponse, TMODELRequest, TModelResponse> (POSTArrayRequest <TResponse, TMODELRequest, TModelResponse> request, string accessToken = null) where TResponse : POSTArrayResponse <TModelResponse> where TMODELRequest : POSTArrayRequestModel where TModelResponse : POSTArrayResponseModel { return(ExecuteAsync(request, accessToken).Result); }
/// <summary> /// 创建POST请求Body参数 /// </summary> /// <typeparam name="TResponse">响应</typeparam> /// <typeparam name="TMODELRequest">请求模型</typeparam> /// <typeparam name="TModelResponse">响应模型</typeparam> /// <param name="request">api请求参数</param> /// <param name="APIDoman">api域名地址</param> /// <param name="accessToken">令牌值</param> /// <returns>api请求完整地址</returns> protected virtual string CreatePOSTArrayParameter <TResponse, TMODELRequest, TModelResponse> (POSTArrayRequest <TResponse, TMODELRequest, TModelResponse> request, string APIDoman, string accessToken) where TResponse : POSTArrayResponse <TModelResponse> where TMODELRequest : POSTArrayRequestModel where TModelResponse : POSTArrayResponseModel { return(request.ToJson()); }
/// <summary> /// 执行POST请求 /// </summary> /// <typeparam name="TResponse">响应</typeparam> /// <typeparam name="TMODELRequest">请求模型</typeparam> /// <typeparam name="TModelResponse">响应模型</typeparam> /// <param name="request">请求参数</param> /// <param name="accessToken">令牌值</param> /// <returns>响应参数</returns> public async Task <TResponse> ExecuteAsync <TResponse, TMODELRequest, TModelResponse> (POSTArrayRequest <TResponse, TMODELRequest, TModelResponse> request, string accessToken = null) where TResponse : POSTArrayResponse <TModelResponse> where TMODELRequest : POSTArrayRequestModel where TModelResponse : POSTArrayResponseModel { var _accessToken = accessToken ?? AccessToken; Uri url = CreatePOSTUrl(APIDoman, request.APIName, request.APIVersion, _accessToken); var request_json = CreatePOSTArrayParameter(request, APIDoman, _accessToken); var httpmsg_response = await HTTPClient.PostAsync(url, request_json, MediaTypeHeaderValue.Parse("application/json;charset=utf-8")); string response = await httpmsg_response.Content.ReadAsStringAsync(); try { return(response.ToJsonObj <TResponse> ()); } catch (Newtonsoft.Json.JsonReaderException) { throw new Newtonsoft.Json.JsonReaderException($"未识别的JSON字符串:{response}"); } }