I'm trying it out on Flex mobile project(Flex 4.14 FP16 AIR16). Just to make your setup easy, you can copy following code in a view of a sample mobile project:
remoteURLStreamer is of URLStream type. Meanwhile, I'm trying out as3httpclient lib which Om has suggested. <?xml version="1.0" encoding="utf-8"?> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" title="Contact" > <s:layout> <s:VerticalLayout/> </s:layout> <fx:Script> <![CDATA[ import mx.events.FlexEvent; import mx.utils.Base64Encoder; private var remoteURLStreamer:URLStream = new URLStream(); private var pathRemote:String = ' http://myserver.com/datafiles/myfile.zip'; private function startRemoteFileDownload():void { URLRequestDefaults.setLoginCredentialsForHost(' www.myserver.com','myusername','mypassword'); // not working remoteURLStreamer.addEventListener(ProgressEvent.PROGRESS, remoteURLStreamerProgressHandler); remoteURLStreamer.addEventListener(IOErrorEvent.IO_ERROR, remoteURLStreamerIOErrorHandler); remoteURLStreamer.addEventListener(SecurityErrorEvent.SECURITY_ERROR, remoteURLStreamerSecurityErrorHandler); var req:URLRequest = new URLRequest(pathRemote); req.method = URLRequestMethod.POST; req.data = new URLVariables("name=John+Doe"); //not working var encoder:Base64Encoder = new Base64Encoder(); encoder.insertNewLines = true; encoder.encode("myusername:mypassword"); var credsHeader:URLRequestHeader = new URLRequestHeader("Authorization", "Basic " + encoder.toString()); //not working remoteURLStreamer.load(req); } private function remoteURLStreamerProgressHandler(event:ProgressEvent):void { switch (event.type) { case "progress": lb.text = event.bytesLoaded.toString(); break; } } private function remoteURLStreamerIOErrorHandler(event:IOErrorEvent):void { lb.text = 'IOError'; } private function remoteURLStreamerSecurityErrorHandler(event:SecurityErrorEvent):void { lb.text = 'SecurityError'; } protected function button1_clickHandler(event:MouseEvent):void { startRemoteFileDownload(); } ]]> </fx:Script> <s:Button label="hello" click="button1_clickHandler(event)"/> <s:Label id="lb" text="Stack trace"/> </s:View> On Thu, Mar 26, 2015 at 9:42 PM, Chris Martin <chrsm...@outlook.com> wrote: > Looking over your code. I wanna attempt to reproduce it. What is the type > for remoteURLStreamer? > > Chris > > > Date: Thu, 26 Mar 2015 10:45:43 +0530 > > Subject: Re: HTTP Basic Authentication for URLRequest > > From: megharajdee...@gmail.com > > To: users@flex.apache.org > > > > Sorry, was away for sometime. > > > > I ran it through network monitor in FB. > > Screenshot: http://pasteboard.co/25kUwXgR.png > > > > Looks like header is not passed at all. > > > > Code: > > var req:URLRequest = new URLRequest(pathRemote); > > req.method = URLRequestMethod.POST; > > req.data = new URLVariables("name=John+Doe"); > > > > var encoder:Base64Encoder = new Base64Encoder(); > > encoder.insertNewLines = true; > > encoder.encode("myusername:mypassword"); > > > > > > var credsHeader:URLRequestHeader = new > > URLRequestHeader("Authorization", "Basic " + encoder.toString()); > > req.requestHeaders.push(credsHeader); > > remoteURLStreamer.load(req); > > > > > > I looked at the doc: > > > http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequestHeader.html > > > > It says: > > "In Flash Player and in Adobe AIR content outside of the application > > security sandbox, the following request headers cannot be used > > Accept-Charset, Accept-Encoding, Accept-Ranges, Age, Allow, Allowed, > > Authorization, Charge-To, Connect, Connection, Content-Length, > > Content-Location, Content-Range, Cookie, Date, Delete, ETag, Expect, Get, > > Head, Host, If-Modified-Since, Keep-Alive, Last-Modified, Location, > > Max-Forwards, Options, Origin, Post, Proxy-Authenticate, > Proxy-Authorization, > > Proxy-Connection, Public, Put, Range, Referer, Request-Range, > Retry-After, > > Server, TE, Trace, Trailer, Transfer-Encoding, Upgrade, URI, User-Agent, > > Vary, Via, Warning, WWW-Authenticate, x-flash-version." > > > > Why does header request cannot have 'Authorization' object? So how else > can > > we pass the header request? > > > > On Thu, Mar 26, 2015 at 10:04 AM, Chris Martin <chrsm...@outlook.com> > wrote: > > > > > Yeah, a network packet log would be a huge help. Then you can rule out > > > whether or not the Authorization header is present in your request or > not. > > > I use fiddler[1] all the time. Also it makes it easy to detect if > > > something else went wrong at the server side like your authentication > > > request failed with a 403 Forbidden response. > > > > > > > > > > > > > > > > > > > > > [1] http://www.telerik.com/fiddler > > > > > > > > > Chris > > > > > > > > > Sent from Windows Mail > > > > > > > > > > > > > > > > > > From: Tom Chiverton > > > Sent: Tuesday, March 24, 2015 2:24 AM > > > To: users@flex.apache.org > > > > > > > > > > > > > > > > > > Do you have a network packet log ? > > > > > > Tom > > > > > > On 24/03/15 04:25, Deepak MS wrote: > > > > Any help on this please? I still haven't found any solution for > this. I > > > > keep getting username\password prompt on the simulator. ;( > > > > > > > > On Mon, Mar 16, 2015 at 7:30 PM, Deepak MS <megharajdee...@gmail.com > > > > > wrote: > > > > > > > >> Hello, > > > >> I'm trying to download a file from the server which requires basic > > > >> authentication(need to enter user name and password to access). > > > >> > > > >> I came across these links: > > > >> > > > >> > > > > http://stackoverflow.com/questions/509219/flex-3-how-to-support-http-authentication-urlrequest > > > >> > > > >> > > > > http://johncblandii.com/2011/07/flex-quick-tip-urlrequest-basic-auth.html > > > >> > > > >> > http://blog.derraab.com/2010/02/25/urlrequest-with-http-authentication/ > > > >> > > > >> Tried all of it. I either get IO error or I get windows > authentication > > > >> popup window when I run the mobile app on my desktop. > > > >> > > > >> None of it seem to work. I'm using Flex4.14\AIR16. > > > >> > > > >> Screenshot: > > > >> http://pbrd.co/18wmsZK > > > >> > > > >> > > > >> Code that I have been trying: > > > >> > > > >> <?xml version="1.0" encoding="utf-8"?> > > > >> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" > > > >> xmlns:s="library://ns.adobe.com/flex/spark" > title="Contact" > > > > >> <s:layout> > > > >> <s:VerticalLayout/> > > > >> </s:layout> > > > >> <fx:Script> > > > >> <![CDATA[ > > > >> import mx.events.FlexEvent; > > > >> import mx.utils.Base64Encoder; > > > >> > > > >> private var remoteURLStreamer:URLStream= new > URLStream(); > > > >> > > > >> private var pathRemote:String = ' > > > >> http://myserver.com/datafiles/myfile.zip'; > > > >> > > > >> private function startRemoteFileDownload():void > > > >> { > > > >> URLRequestDefaults.setLoginCredentialsForHost(' > > > >> www.myserver.com','myusername','mypassword'); // not working > > > >> > > > remoteURLStreamer.addEventListener(ProgressEvent.PROGRESS, > > > >> remoteURLStreamerProgressHandler); > > > >> > > > remoteURLStreamer.addEventListener(IOErrorEvent.IO_ERROR, > > > >> remoteURLStreamerIOErrorHandler); > > > >> > > > >> > remoteURLStreamer.addEventListener(SecurityErrorEvent.SECURITY_ERROR, > > > >> remoteURLStreamerSecurityErrorHandler); > > > >> > > > >> var req:URLRequest = new URLRequest(pathRemote); > > > >> > > > >> req.method = URLRequestMethod.POST; > > > >> > > > >> req.data = new URLVariables("name=John+Doe"); > //(one > > > post > > > >> suggests to pass dummy parameters to data) not working > > > >> > > > >> var encoder:Base64Encoder = new Base64Encoder(); > > > >> encoder.insertNewLines = true; > > > >> encoder.encode("myusername:mypassword"); > > > >> > > > >> > > > >> var credsHeader:URLRequestHeader = new > > > >> URLRequestHeader("Authorization", "Basic " + encoder.toString()); > //not > > > >> working > > > >> req.requestHeaders.push(credsHeader); > > > >> remoteURLStreamer.load(req); > > > >> > > > >> } > > > >> > > > >> private function > > > >> remoteURLStreamerProgressHandler(event:ProgressEvent):void > > > >> { > > > >> > > > >> switch (event.type) > > > >> { > > > >> case "progress": > > > >> lb.text = event.bytesLoaded.toString(); > > > >> break; > > > >> } > > > >> } > > > >> > > > >> > > > >> > > > >> private function > > > >> remoteURLStreamerIOErrorHandler(event:IOErrorEvent):void > > > >> { > > > >> lb.text = 'IOError'; > > > >> } > > > >> > > > >> private function > > > >> remoteURLStreamerSecurityErrorHandler(event:SecurityErrorEvent):void > > > >> { > > > >> lb.text = 'SecurityError'; > > > >> } > > > >> > > > >> > > > >> protected function > > > button1_clickHandler(event:MouseEvent):void > > > >> { > > > >> startRemoteFileDownload(); > > > >> } > > > >> > > > >> ]]> > > > >> </fx:Script> > > > >> > > > >> <s:Button label="hello" click="button1_clickHandler(event)"/> > > > >> <s:Label id="lb" text="Hello"/> > > > >> </s:View> > > > >> > > > >> > > > >> > > > >> Can you kindly let me know if there is something going wrong here? > Or is > > > >> there any other way to make it work? > > > >> > > > >> > > > > > > > > > ______________________________________________________________________ > > > > This email has been scanned by the Symantec Email Security.cloud > service. > > > > For more information please visit http://www.symanteccloud.com > > > > > ______________________________________________________________________ > > > > >