// Token: 0x06000011 RID: 17 RVA: 0x000022E8 File Offset: 0x000004E8 public T Execute <T>(string servicename, object[] parameters = null, FailCallbackHandler failcallback = null, int timeout = 100) { ApiRequest apiRequest = this.CreateRequest(servicename, parameters); apiRequest.HttpRequest.Timeout = timeout * 1000; return(this.Call <T>(apiRequest, failcallback)); }
/// <summary> /// 以同步的形式发起HTTP请求并返回类型为泛型的API响应对象。 /// </summary> /// <typeparam name="T">定义结果的泛型。</typeparam> /// <param name="failCallback">调用失败的方法回调。</param> /// <param name="timeout">HTTP超时时间,以秒为单位。</param> /// <returns>返回结果类型为泛型的API响应对象。</returns> public virtual APIResponse <T> ToAPIResponse <T>(FailCallbackHandler failCallback = null, int timeout = 100) { var result = new APIResponse <T>(); try { result.Body = Execute <T>(failCallback, timeout); result.StatusCode = HttpStatusCode.OK; }//end try catch (APIException ex) { result.StatusCode = (HttpStatusCode)ex.GetHttpCode(); result.Error = ex; result.APIError = ex; } catch (ServiceException ex) { result.StatusCode = (HttpStatusCode)ex.GetHttpCode(); result.Error = ex; result.APIError = new APIException(ex); } catch (Exception ex) { result.Error = ex; } return(result); }//end method
// Token: 0x060000BA RID: 186 RVA: 0x00004154 File Offset: 0x00002354 public void SendMsgSync(string data, Action <string> SuccResultHandler, FailCallbackHandler failcallback = null, ProgressChangedHandler progressCallback = null, int reportInterval = 5) { base.ExecuteAsync <string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.SendMsg", SuccResultHandler, new object[] { data }, progressCallback, failcallback, 10, reportInterval); }
}//end method /// <summary> /// 以同步的形式发起HTTP请求并返回执行结果, /// 结果以泛型反序列化获得。 /// </summary> /// <typeparam name="T">泛型对象。</typeparam> /// <param name="failCallback">执行失败的方法委托。</param> /// <param name="timeout">超时时间,默认100秒。</param> /// <returns>返回反序列化的泛型结果。</returns> public virtual T Execute <T>(FailCallbackHandler failCallback = null, int timeout = 100) { this.CreateApiClientInstance(); var paramatersArray = JsonConvert.DeserializeObject <object[]>(this.Operation.RequestParameters); return(_client.Execute <T>(this.Operation.ServiceName, paramatersArray, failCallback, timeout)); }//end method
// Token: 0x06000017 RID: 23 RVA: 0x00002602 File Offset: 0x00000802 private FailCallbackHandler GetReallyFailCallback(FailCallbackHandler failcallback) { if (failcallback != null) { return(failcallback); } if (this.defaultFailCallback != null) { return(this.defaultFailCallback); } return(null); }
// Token: 0x06000015 RID: 21 RVA: 0x000024A0 File Offset: 0x000006A0 public T Call <T>(ApiRequest request, FailCallbackHandler failcallback = null) { return(this.SafeDo <T>(delegate { string text = this.httpClient.Send(request); if (string.IsNullOrEmpty(text)) { return default(T); } return JsonObject.Deserialize <T>(text); }, this.GetReallyFailCallback(failcallback))); }
// Token: 0x06000012 RID: 18 RVA: 0x00002374 File Offset: 0x00000574 public ApiRequest ExecuteAsync <T>(string servicename, Action <T> successCallback, object[] parameters = null, ProgressChangedHandler progressCallback = null, FailCallbackHandler failcallback = null, int timeout = 0, int reportInterval = 5) { return(this.ExecuteAsyncInternal <T>(servicename, delegate(AsyncResult <T> ret) { if (ret.Successful) { successCallback(ret.ReturnValue); return; } FailCallbackHandler reallyFailCallback = this.GetReallyFailCallback(failcallback); if (reallyFailCallback != null) { reallyFailCallback(ret.Exception); return; } ret.ThrowEx(); }, parameters, progressCallback, timeout, reportInterval)); }
}//end method /// <summary> /// 以异步的形式发起HTTP请求并返回执行结果。 /// </summary> /// <typeparam name="T">泛型对象。</typeparam> /// <param name="successCallback">执行成功的方法委托。</param> /// <param name="progressCallback">执行中的方法委托。</param> /// <param name="failCallback">执行失败的方法委托。</param> /// <param name="timeout">超时时间,默认0秒。</param> /// <param name="reportInterval">执行汇报进程间隔,默认5秒。</param> /// <returns>返回ApiRequest对象。</returns> public virtual ApiRequest ExecuteAsync <T>( Action <T> successCallback = null, ProgressChangedHandler progressCallback = null, FailCallbackHandler failCallback = null, int timeout = 0, int reportInterval = 5) { this.CreateApiClientInstance(); var paramatersArray = JsonConvert.DeserializeObject <object[]>(this.Operation.RequestParameters); return(_client.ExecuteAsync <T>(this.Operation.ServiceName, successCallback, paramatersArray, progressCallback, failCallback, timeout, reportInterval)); }//end method
// Token: 0x06000018 RID: 24 RVA: 0x0000261C File Offset: 0x0000081C private T SafeDo <T>(Func <T> action, FailCallbackHandler failcallback) { try { return(action()); } catch (ServiceException ex) { bool flag = false; if (failcallback != null) { failcallback(ex); flag = ex.Handled; } if (!flag) { throw; } } return(default(T)); }
// Token: 0x06000004 RID: 4 RVA: 0x000020AB File Offset: 0x000002AB public ApiClient(string serverUrl, FailCallbackHandler defaultfailcallback, int timeout) : this(serverUrl, defaultfailcallback) { this._defaultTimeout = timeout; }
// Token: 0x06000003 RID: 3 RVA: 0x0000209B File Offset: 0x0000029B public ApiClient(string serverUrl, FailCallbackHandler defaultfailcallback) : this(serverUrl) { this.defaultFailCallback = defaultfailcallback; }
// Token: 0x06000014 RID: 20 RVA: 0x00002420 File Offset: 0x00000620 public string Call(ApiRequest request, FailCallbackHandler failcallback = null) { return(this.SafeDo <string>(() => this.httpClient.Send(request), this.GetReallyFailCallback(failcallback))); }
// Token: 0x060000AD RID: 173 RVA: 0x00003EC8 File Offset: 0x000020C8 public void GetDataCentersSync(Action <List <DataCenter> > SuccResultHandler, FailCallbackHandler failcallback = null, ProgressChangedHandler progressCallback = null, int reportInterval = 5) { base.ExecuteAsync <List <DataCenter> >("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.GetDataCenterList", SuccResultHandler, new object[0], progressCallback, failcallback, 10, reportInterval); }