示例#1
0
        // *************** Asynchronous Post *********************
        public static void RestPostAsync <TR, TI>(string url, TI data,
                                                  RestCallBack <TR> callback, ClientConfiguration configuration)
        {
            var post = new PostDelegate <TR, TI>(RestPost <TR, TI>);

            post.BeginInvoke(url, data, configuration,
                             ar =>
            {
                var result  = (AsyncResult)ar;
                var del     = (PostDelegate <TR, TI>)result.AsyncDelegate;
                var value   = default(TR);
                Exception e = null;

                try { value = del.EndInvoke(result); }
                catch (Exception ex) { e = ex; }

                callback?.Invoke(e, value);
            }, null);
        }
        // *************** Asynchronous Post *********************
        internal void RestPostAsync(string url, string data,
                                    RestCallBack <string> callback, ClientConfiguration configuration)
        {
            var post = new PostDelegate <string, string>(RestPost);

            post.BeginInvoke(url, data, configuration,
                             ar =>
            {
                var result  = (AsyncResult)ar;
                var del     = (PostDelegate <string, string>)result.AsyncDelegate;
                var value   = string.Empty;
                Exception e = null;

                try { value = del.EndInvoke(result); }
                catch (Exception ex) { e = ex; }

                if (callback != null)
                {
                    callback(e, value);
                }
            }, null);
        }
        // *************** Asynchronous Get ***************************
        internal void RestGetAsync <TR>(string url, RestCallBack <TR> callback,
                                        ClientConfiguration configuration)
        {
            var get = new GetDelegate <string>(RestGet);

            get.BeginInvoke(url, configuration,
                            ar =>
            {
                var result  = (AsyncResult)ar;
                var del     = (GetDelegate <TR>)result.AsyncDelegate;
                var value   = default(TR);
                Exception e = null;

                try { value = del.EndInvoke(result); }
                catch (Exception ex) { e = ex; }

                if (callback != null)
                {
                    callback(e, value);
                }
            }, null);
        }
示例#4
0
 // Overload method
 public static void RestPostAsync <TR, TI>(string url, TI data,
                                           RestCallBack <TR> callback) => RestPostAsync <TR, TI>(url, data, callback, DefaultConfiguration);
示例#5
0
 // Overload method
 public static void RestGetAsync <TR>(string url, RestCallBack <TR> callback) => RestGetAsync <TR>(url, callback, DefaultConfiguration);
 // Overload method
 internal void RestGetAsync <TR>(string url, RestCallBack <TR> callback)
 {
     RestGetAsync <TR>(url, callback, DefaultConfiguration);
 }
 // Overload method
 internal void RestPostAsync(string url, string data,
                             RestCallBack <string> callback)
 {
     RestPostAsync(url, data, callback, DefaultConfiguration);
 }
 // Overload method
 internal void RestPostAsync <TR, TI>(string url, TI data,
                                      RestCallBack <TR> callback)
 {
     RestPostAsync <TR, TI>(url, data, callback, DefaultConfiguration);
 }