public static void MakeRequestTo( System.Uri srv, string function, Method method, Dictionary <string, object> parameter, WebRequestRespondedCallback callback, Context context = null, string parametersStr = "") { if (context == null) { context = defaultContext; } context = context.Clone(srv, function, method, parameter, parametersStr, callback); if (srv != null) { TaskManager.StartUnbreakableCoroutine(MakeRequestTo_(context)); } else { if (callback != null) { callback(WebExceptionStatus.ConnectFailure, HttpStatusCode.Unused, null, null, null, context); } } }
public static WebRequestRespondedCallback RetryIfFailed( WebRequestRespondedCallback callback, int tries = 3, System.Func <WebExceptionStatus, HttpStatusCode, bool> cond = null, float nextRetryAfter = 0, float retryDurationIncr = 5) { if (cond == null) { cond = DefaultRetryCondition; } return((status, code, _1, _2, _3, context) => { if (status == WebExceptionStatus.Success && code == HttpStatusCode.OK) { callback(status, code, _1, _2, _3, context); } else { tries = tries - 1; if (tries > 0 && cond(status, code)) { float delay = nextRetryAfter; nextRetryAfter += retryDurationIncr; Debug.LogWarningFormat("Retry will start in {0} seconds ...", delay); TaskManager.DelayExecute( delay, () => MakeRequestTo(context.srv, context.function, context.method, context.parameters, context.callback, context)); } else { callback(status, code, _1, _2, _3, context); } } }); }
public static void Post(System.Uri srv, string function, Dictionary <string, object> parameter, WebRequestRespondedCallback callback, Context context = null, string parametersStr = "") { MakeRequestTo(srv, function, Method.POST, parameter, callback, context: context, parametersStr: parametersStr); }
public static void PostWithAuth(System.Uri srv, string function, Dictionary <string, object> parameter, WebRequestRespondedCallback callback, Context context = null) { MakeRequestTo(srv, function, Method.POST, parameter, callback, context); }
public Context Clone(System.Uri srv, string function, Method method, Dictionary <string, object> parameters, string parametersStr, WebRequestRespondedCallback callback) { var cloned = MemberwiseClone() as Context; cloned.srv = srv; cloned.function = function; cloned.method = method; cloned.parameters = parameters; cloned.parametersStr = parametersStr; cloned.callback = callback; cloned.parent = this; return(cloned); }