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); }
/// <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); }
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; }
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); }