サイトにBasic認証がかかっている状態でAIRアプリでswfをダウンロードするときに通常の書き方をしているとBasic認証のウィンドウが表示されてしまいます。それを表示させないようにする方法を紹介します。
Base64Encoder を使うためにFlex SDKをダウンロードして使用しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import mx.utils.*; // basic認証のidとパスワード var ID:String = "***"; var PASSWORD:String = "***"; // 対象のURL var URL:String = "http://***"; var swfLoader:URLLoader = new URLLoader(); swfLoader.dataFormat = URLLoaderDataFormat.BINARY; swfLoader.addEventListener(Event.COMPLETE, SaveCompleteHandler); swfLoader.addEventListener(IOErrorEvent.IO_ERROR, SaveErrorHandler); var request:URLRequest = new URLRequest(); var encoder:Base64Encoder = new Base64Encoder(); encoder.encodeUTFBytes( ID + ":" + PASSWORD ); var header:URLRequestHeader = new URLRequestHeader("Authorization", "Basic " + encoder.toString() ); request.requestHeaders.push(header); request.url = URL; swfLoader.load(request); function SaveCompleteHandler(event:Event):void{ // 何か処理 } function SaveErrorHandler(event:IOErrorEvent):void{ // 何か処理 } |
コメントを残す