コード例 #1
0
        public static void ToWebString(this Uri e, Action<string> handler)
        {
            var request = new URLRequest(e.ToString());
            request.method = URLRequestMethod.GET;

            var loader = new URLLoader();
            loader.complete +=
                args =>
                {
                    handler("" + loader.data);
                };

            loader.ioError +=
                args =>
                {
                    handler(null);
                };

            loader.securityError +=
                args =>
                {
                    handler(null);
                };

            loader.load(request);
        }
コード例 #2
0
		/// <summary>
		/// Default constructor
		/// </summary>
		public URLRequestHeaderExample()
		{
			// http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequestHeader.html#includeExamplesSummary
			// http://www.judahfrangipane.com/blog/?p=87

			var t = new TextField
			{
				multiline = true,
				text = "powered by jsc",
				background = true,
				width = 400,
				x = 8,
				y = 8,
				alwaysShowSelection = true,
			}.AttachTo(this);

			var loader = new URLLoader();

			var header = new URLRequestHeader("XMyHeader", "got milk?");

			t.appendText("\n" + this.loaderInfo.url);
			t.appendText("\nUsing relative path...");

			var request = new URLRequest("../WebForm1.aspx");
			var data = new DynamicContainer { Subject = new URLVariables("name=John+Doe") };
			data["age"] = 23;

			request.data = data.Subject;
			request.method = URLRequestMethod.POST;
			request.requestHeaders.push(header);

			loader.complete +=
				args =>
				{
					t.appendText("\n" + loader.data);
				};

			loader.load(request);



			KnownEmbeddedResources.Default[KnownAssets.Path.Assets + "/Preview.png"].ToBitmapAsset().AttachTo(this).MoveTo(100, 200);
		}
コード例 #3
0
 public static void remove_securityError(URLLoader that, Action<SecurityErrorEvent> value)
 {
     CommonExtensions.RemoveDelegate(that, value, SecurityErrorEvent.SECURITY_ERROR);
 }
コード例 #4
0
 public static void remove_progress(URLLoader that, Action<ProgressEvent> value)
 {
     CommonExtensions.RemoveDelegate(that, value, ProgressEvent.PROGRESS);
 }
コード例 #5
0
 public static void remove_open(URLLoader that, Action<Event> value)
 {
     CommonExtensions.RemoveDelegate(that, value, Event.OPEN);
 }
コード例 #6
0
 public static void add_open(URLLoader that, Action<Event> value)
 {
     CommonExtensions.CombineDelegate(that, value, Event.OPEN);
 }
コード例 #7
0
 public static void remove_ioError(URLLoader that, Action<IOErrorEvent> value)
 {
     CommonExtensions.RemoveDelegate(that, value, IOErrorEvent.IO_ERROR);
 }
コード例 #8
0
 public static void remove_httpStatus(URLLoader that, Action<HTTPStatusEvent> value)
 {
     CommonExtensions.RemoveDelegate(that, value, HTTPStatusEvent.HTTP_STATUS);
 }
コード例 #9
0
 public static void remove_complete(URLLoader that, Action<Event> value)
 {
     CommonExtensions.RemoveDelegate(that, value, Event.COMPLETE);
 }
コード例 #10
0
        public Task<byte[]> UploadValuesTaskAsync(Uri address, NameValueCollection data)
        {
            // X:\jsc.svn\examples\actionscript\Test\TestWorkerUploadValuesTaskAsync\TestWorkerUploadValuesTaskAsync\ApplicationSprite.cs
            // https://forums.adobe.com/thread/1189679

            var xx = new TaskCompletionSource<byte[]>();

            // X:\jsc.svn\examples\actionscript\Test\TestUploadValuesTaskAsync\TestUploadValuesTaskAsync\ApplicationSprite.cs

            var request = new URLRequest(address.ToString())
            {
                method = URLRequestMethod.POST
            };

            // should we use dynamic instead?
            var x = new DynamicContainer { Subject = new URLVariables() };

            foreach (var item in data.AllKeys)
            {
                x[item] = data[item];
            }

            // http://stackoverflow.com/questions/12774611/urlrequest-urlloader-auto-converting-post-request-to-get
            // !!!!
            request.data = (object)x.Subject;
            //request.contentType = ""

            var loader = new URLLoader();
            // http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoaderDataFormat.html
            //loader.dataFormat = URLLoaderDataFormat.Binary;
            loader.dataFormat = "binary";
            // http://stackoverflow.com/questions/7816231/how-to-use-as3-to-load-binary-data-from-web-server

            loader.complete +=
                args =>
                {
                    // If the dataFormat property is URLLoaderDataFormat.BINARY, the received data is a ByteArray object 
                    // containing the raw binary data.

                    //                TypeError: Error #1034: Type Coercion failed: cannot convert ScriptCoreLib.Shared.BCLImplementation.System.Net::__DownloadStringCompletedEventArgs@5422ad9 to ScriptCoreLib.Shared.BCLImplementation.System.Net.__UploadValuesCompletedEventArgs.
                    //at ScriptCoreLib.ActionScript.BCLImplementation.System.Net::__WebClient/_UploadValuesAsync_b__7_4ebbe596_06000fb2()[V:\web\ScriptCoreLib\ActionScript\BCLImplementation\System\Net\__WebClient.as:143]
                    //at flash.events::EventDispatcher/dispatchEventFunction()
                    //at flash.events::EventDispatcher/dispatchEvent()
                    //at flash.net::URLLoader/redirectEvent()

                    // TypeError: Error #1034: Type Coercion failed: cannot convert ScriptCoreLib.Shared.BCLImplementation.System.Net::__DownloadStringCompletedEventArgs@53686e9 to ScriptCoreLib.Shared.BCLImplementation.System.Net.__UploadValuesCompletedEventArgs.

                    //throw new Exception(
                    //    new { loader.data, loader.dataFormat, t = loader.data.GetType() }.ToString()
                    //);

                    var bytes = (ByteArray)loader.data;
                    var Result = (byte[])bytes.ToArray();

                    //if (UploadValuesCompleted != null)
                    //    UploadValuesCompleted(this, (UploadValuesCompletedEventArgs)(object)e);

                    xx.SetResult(Result);
                };

            loader.ioError +=
                args =>
                {
                    var e = new __UploadValuesCompletedEventArgs { Error = new Exception("ioError") };
                    //if (UploadValuesCompleted != null)
                    //    UploadValuesCompleted(this, (UploadValuesCompletedEventArgs)(object)e);

                    throw e.Error;
                };


            loader.securityError +=
                args =>
                {
                    var e = new __UploadValuesCompletedEventArgs
                    {
                        Error = new Exception(
                            "securityError " + new { args.errorID, args.text }
                            )
                    };

                    //if (UploadValuesCompleted != null)
                    //    UploadValuesCompleted(this, (UploadValuesCompletedEventArgs)(object)e);

                    throw e.Error;
                };

            loader.load(request);

            return xx.Task;
        }
コード例 #11
0
        public void DownloadStringAsync(Uri address)
        {
            // testedby
            // X:\jsc.svn\examples\actionscript\Test\TestWebClient\TestWebClient\ApplicationSprite.cs

            var request = new URLRequest(address.ToString())
            {
                method = URLRequestMethod.GET
            };

            var loader = new URLLoader();
            loader.complete +=
                args =>
                {
                    var e = new __DownloadStringCompletedEventArgs { Result = "" + loader.data };

                    DownloadStringCompleted(this, (DownloadStringCompletedEventArgs)(object)e);
                };

            loader.ioError +=
                args =>
                {
                    var e = new __DownloadStringCompletedEventArgs { Error = new Exception("ioError") };
                    DownloadStringCompleted(this, (DownloadStringCompletedEventArgs)(object)e);
                };


            loader.securityError +=
                args =>
                {
                    var e = new __DownloadStringCompletedEventArgs
                    {
                        Error = new Exception(
                            "securityError " + new { args.errorID, args.text }
                            )
                    };
                    DownloadStringCompleted(this, (DownloadStringCompletedEventArgs)(object)e);
                };

            loader.load(request);
        }