コード例 #1
0
        public ServerTransport(bool fileupload)
        {
            IsFileUpload = fileupload;

            if (fileupload)
            {
                Source = Native.API.base64_decode(Native.SuperGlobals.Post[Helper.FormTemplateJSONField]);
            }
            else
            {
                Source = Native.API.file_get_contents("php://input");
            }

            Native.Log("json << stream");

            Native.Log("reading json transport data...");

            FileSystemInfo.WriteFile("json.in.log", Helper.Join("\t", Native.DateTime, Source, "\r\n"), true);

            Descriptor = JSON.Decode <MyTransportDescriptor <TType> >(Source);

            Native.Log("reading json transport data... complete! ");

            //Native.Log("reading json transport data... done");

            //Native.Log("dump: " + Native.DumpToString(Descriptor));
        }
コード例 #2
0
        public ClientTansport(string url, string query, bool fileupload)
        {
            Url          = url + "?" + query;
            Descriptor   = new MyTransportDescriptor <TType>();
            Worker.Tick += new System.Action <Timer>(Worker_Tick);

            if (fileupload)
            {
                IHTMLElement template = Native.Document.getElementById(Helper.FormTemplateID);

                if (template == null)
                {
                    throw new System.Exception("form template not found");
                }

                Form        = (IHTMLForm)template.cloneNode(false);
                Form.action = Url;
                Form.appendChild(new IHTMLElement());
                FormHiddenChild.style.display = IStyle.DisplayEnum.none;

                Descriptor.Callback = Expando.GetUniqueID("callback");
                Expando.ExportCallback <string>(Descriptor.Callback, Callback);
                ResetCallbackFrame();
            }
            else
            {
                Request = new IXMLHttpRequest();
            }
        }
コード例 #3
0
        private void GotResponse()
        {
            TimeElapsed = IDate.Now.getTime() - _timestart;

            Worker.Stop();



            if (IsVerbose)
            {
                System.Console.WriteLine(" <= [" + this.Descriptor.Description + "] " + TimeElapsed + " ms, " + this.ResponseText.Length + " bytes");
                System.Console.WriteLine("json: " + this.ResponseText);
            }

            Descriptor = null;


            try
            {
                Descriptor = Expando.FromJSONProtocolString(ResponseText).To <MyTransportDescriptor <TType> >();
            }
            catch (System.Exception exc)
            {
                LastException = exc;

                //if (IsVerbose)
                //{
                //    Console.LogError("unable to spawn from json, " + exc.Message);
                //    Console.LogError("stream -> " + ResponseText);
                //}
            }

            Helper.Invoke(Complete, this);

            //if (Complete != null)
            //    Complete(this);
        }