public void Clear() { Loader = null; _form = null; if (_headers != null) { _headers.Clear(); } ErrorCount = 0; _status = WebReqestStat.Wait; }
public IEnumerator StartRequest(object target, string method, object parameter, RemoteCallback callback, string back) { _loaded = false; _status = WebReqestStat.Work; _form = new WWWForm(); if (!string.IsNullOrEmpty(Gateway.AppName)) { _form.AddField(Gateway.AppParameter, Gateway.AppName); } _form.AddField(Gateway.ClassKey, target is string?target.ToString() : target.GetType().Name); _form.AddField(Gateway.MethodKey, method); _form.AddField(Gateway.AppParameter, Gateway.AppName); if (parameter != null) { _form.AddBinaryData("data", /*_parent.Encode(parameter)*/ new Serializer().Encode(parameter)); } /*if (!Application.isWebPlayer && !string.IsNullOrEmpty(Gateway.Key)) * { * _headers = new Dictionary<string, string>(); * _form.headers["Cookie"] = Gateway.KeyName + "=" + Gateway.Key; * Loader = new WWW(_url, _form.data, _headers); * } * else*/ Loader = new WWW(_url, _form); yield return(Loader); _loaded = true; if (Loader.error != null) { Debug.LogError("UWebRequest: loader ERROR " + Loader.error); if (callback != null) { callback(Loader.error); } _status = WebReqestStat.Error; _parent.PutRequestToError(this); ErrorCount++; } else { var decode = true; if (Loader.responseHeaders != null) { if (!Application.isWebPlayer && Loader.responseHeaders.ContainsKey("SET-COOKIE")) { var cookies = Loader.responseHeaders["SET-COOKIE"].Split(';'); foreach ( var cook in cookies.Select(cooky => cooky.Split('=')) .Where(cook => cook[0].Trim().Equals(Gateway.KeyName))) { Gateway.Key = cook[1].Trim(); } } if (Loader.responseHeaders.ContainsKey("NODECODE")) { decode = false; } } object val; if (decode) { val = new Serializer().Decode(Loader.bytes) ?? Loader.text; } else { val = Loader.text; } if (val is UError) { _status = WebReqestStat.Error; _parent.PutRequestToError(this); ErrorCount++; } else { if (back != null) { SetBack(back, ref target, val); } if (callback != null) { callback(val); } _status = WebReqestStat.Wait; _parent.BackRequestToPool(this); } } }