/// <summary> /// 执行请求 /// </summary> /// <param name="apiName"></param> /// <param name="req"></param> /// <param name="method"></param> /// <param name="ip"></param> /// <param name="isFromAttr"></param> /// <param name="httpGetOptions"></param> /// <param name="httpPostOptions"></param> /// <param name="clientSetting"></param> /// <returns></returns> protected virtual async Task <string> DoRequest(string apiName, object req, string method, string ip = null, bool isFromAttr = false, HttpGetOptions httpGetOptions = null, HttpPostOptions httpPostOptions = null, Action <HttpClient> clientSetting = null) { string url = _baseApiUrl; url += apiName; var data = new Dictionary <string, string>(); FillData(req, data, isFromAttr); AppendApiAuthParam(apiName, data, ip); var paramStr = GetParamStr(data); Logger.LogDebug($"[{Name}]开始调用Http接口,Url={url},Param={paramStr}"); string ret = ""; try { if (method.ToLower() == "post") { ret = await HttpRequestUtils.PostFormAsync(url, data, null, httpPostOptions, clientSetting); } else if (method.ToLower() == "postjson") { ret = await HttpRequestUtils.PostAsync(url, req.ToJson(), null, httpPostOptions, clientSetting); } else { ret = await HttpRequestUtils.GetAsync(url, data, httpGetOptions, clientSetting); } } catch (Exception ex) { Logger.LogError(ex.InnerException == null ? ex : ex.InnerException, $"[{Name}]调用Http接口出现错误,Url={url},Param={paramStr}"); throw ex; } Logger.LogDebug($"[{Name}]Http接口调用完成,Url={url},Param={paramStr},Response={ret}"); return(ret); }
private static async Task GetAsync(HttpGetOptions options) { HttpClient client = new HttpClient(); HttpResponseMessage responseMessage = await client.GetAsync(options.Endpoint); }
/// <summary> /// 执行请求 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="apiName"></param> /// <param name="req"></param> /// <param name="method"></param> /// <param name="ip"></param> /// <param name="isFromAttr"></param> /// <param name="httpGetOptions"></param> /// <param name="httpPostOptions"></param> /// <param name="clientSetting"></param> /// <returns></returns> protected virtual async Task <T> DoRequest <T>(string apiName, object req, string method, string ip = null, bool isFromAttr = false, HttpGetOptions httpGetOptions = null, HttpPostOptions httpPostOptions = null, Action <HttpClient> clientSetting = null) where T : class, new() { string ret = await DoRequest(apiName, req, method, ip, isFromAttr, httpGetOptions, httpPostOptions, clientSetting); return(ParseResponse <T>(ret)); }