Exemple #1
0
        // 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));
        }
Exemple #2
0
        /// <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
Exemple #3
0
 // 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);
 }
Exemple #4
0
        }//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
Exemple #5
0
 // 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);
 }
Exemple #6
0
 // 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)));
 }
Exemple #7
0
 // 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));
 }
Exemple #8
0
        }//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
Exemple #9
0
 // 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));
 }
Exemple #10
0
 // Token: 0x06000004 RID: 4 RVA: 0x000020AB File Offset: 0x000002AB
 public ApiClient(string serverUrl, FailCallbackHandler defaultfailcallback, int timeout) : this(serverUrl, defaultfailcallback)
 {
     this._defaultTimeout = timeout;
 }
Exemple #11
0
 // Token: 0x06000003 RID: 3 RVA: 0x0000209B File Offset: 0x0000029B
 public ApiClient(string serverUrl, FailCallbackHandler defaultfailcallback) : this(serverUrl)
 {
     this.defaultFailCallback = defaultfailcallback;
 }
Exemple #12
0
 // 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)));
 }
Exemple #13
0
 // 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);
 }