こんにちは
HTTPServiceでPDFファイルをダウンロードする方法を知っていますか?
私はエラーHTTPServiceを使用してFlexでPDFファイルをダウンロード
private function downloadPDF():void
{
var httpService:HTTPService = new HTTPService();
httpService.url = "http://coenraets.org/flexandroid90/FlexAndroid90Minutes.pdf";
httpService.addEventListener(ResultEvent.RESULT, result);
httpService.addEventListener(FaultEvent.FAULT, fault);
httpService.send();
}
private function fault(event:FaultEvent):void
{
trace("Error");
trace("\t> Code : "+event.fault.faultCode);
trace("\t> Description : "+event.fault.faultString);
trace("\t> Detail : "+event.fault.faultDetail);
}
private function result(event:ResultEvent):void
{
var pdfFile:File = new File(File.applicationStorageDirectory.nativePath + File.separator + "myPDF.pdf");
var fileStream:FileStream = new FileStream();
fileStream.open(pdfFile, FileMode.WRITE);
fileStream.writeUTFBytes(event.result as String);
fileStream.close();
}
しかし、それを行う
エラー
コード:Client.CouldNotDecode
説明:エラー#1090:XMLパーサエラー:要素が不正な形式です。
詳細:
ヌルそれは罰金
private function initPDF():void
{
loader = new downloadPDF();
loader.dataFormat = URLLoaderDataFormat.BINARY;
var request:URLRequest = new URLRequest("http://coenraets.org/flexandroid90/FlexAndroid90Minutes.pdf");
configureListeners(loader);
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested URL.");
}
}
private function configureListeners(dispatcher:EventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeHandler(event:Event):void {
var pdfFile:File = new File(File.applicationStorageDirectory.nativePath + File.separator + "myPDF.pdf");
var fileStream:FileStream = new FileStream();
fileStream.open(pdfFile, FileMode.WRITE);
fileStream.writeBytes(loader.data);
fileStream.close();
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
HTTPServiceは、テキストまたはXML形式のデータを返すWebサービスを呼び出すために使用されます。実際にはサーバーへのクエリです(データベースではなく、間違ってもいけません)。 通常のURLLoaderの代わりにサービスを使用する理由を教えてください。 – Exort
可能であれば、私はHTTPServiceの使用を依頼しています。しかし、私はURLLoader – Snote
@Snoteを使用し、HTTPServiceでバイナリデータを取得することもできます。私の答えを確認してください。 –