/// <summary> /// 通过Post调用 /// </summary> /// <param name="apiName"></param> /// <param name="form"></param> /// <returns></returns> public ApiValueResult Post(string apiName, string form) { LogRecorderX.BeginStepMonitor("内部API调用" + ToUrl(apiName)); var ctx = string.IsNullOrEmpty(Bearer) ? null : $"Bearer {Bearer}"; LogRecorderX.MonitorTrace(ctx); LogRecorderX.MonitorTrace("Arguments:" + form); var req = (HttpWebRequest)WebRequest.Create(ToUrl(apiName)); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.Headers.Add(HttpRequestHeader.Authorization, ctx); try { using (var rs = req.GetRequestStream()) { var formData = Encoding.UTF8.GetBytes(form); rs.Write(formData, 0, formData.Length); } } catch (Exception ex) { LogRecorderX.Exception(ex); LogRecorderX.EndStepMonitor(); return(ErrorResult(-3)); } using (MonitorScope.CreateScope("Caller Remote")) { return(GetResult(req)); } }
/// <summary> /// 通过Get调用 /// </summary> /// <typeparam name="TResult"></typeparam> /// <param name="apiName"></param> /// <param name="arguments"></param> /// <returns></returns> public ApiResult <TResult> Get <TResult>(string apiName, string arguments) { LogRecorderX.BeginStepMonitor("内部API调用" + ToUrl(apiName)); var ctx = string.IsNullOrEmpty(Bearer) ? null : $"Bearer {Bearer}"; LogRecorderX.MonitorTrace(ctx); LogRecorderX.MonitorTrace("Arguments:" + arguments); if (!string.IsNullOrWhiteSpace(arguments)) { apiName = $"{apiName}?{arguments}"; } var req = (HttpWebRequest)WebRequest.Create(ToUrl(apiName)); req.Method = "GET"; req.ContentType = "application/x-www-form-urlencoded"; req.Headers.Add(HttpRequestHeader.Authorization, ctx); return(GetResult <TResult>(req)); }