root/as3/Utils/src/org/libspark/utils/RequestUtil.as

リビジョン 804, 5.9 kB (コミッタ: michi, コミット時期: 2 年 前)

asdoc追加

Line 
1 /*
2  * Copyright(c) 2006-2007 the Spark project.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific language
14  * governing permissions and limitations under the License.
15  */
16
17 package org.libspark.utils
18 {
19 import flash.errors.IllegalOperationError;
20 import flash.events.Event;
21 import flash.net.FileReference;
22 import flash.net.URLLoader;
23 import flash.net.URLRequest;
24 import flash.net.URLVariables;
25 import flash.net.navigateToURL;
26 import flash.net.sendToURL;
27
28 /**
29  * URLRequest 関連のユーティリティクラスです
30  */
31 public class RequestUtil
32 {
33    
34     public static var navigateEnabled:Boolean = true;
35    
36    
37     /**
38      * Flash Player のコンテナを含むアプリケーション (通常はブラウザ) でウィンドウを開くか、置き換えます。
39          *
40      * @param   url 移動先の URL
41      * @param   target 指定されたドキュメントを表示するブラウザウィンドウまたは HTML フレームです。
42          * @author  michi at seyself.com
43      */
44     public static function link( url:String, target:String=null ):void
45     {
46         if ( navigateEnabled ) {
47             if ( !target || target=="_self" ) {
48                 navigateToURL( new URLRequest(url) );
49             } else {
50                 navigateToURL( new URLRequest(url), target );
51             }
52         } else {
53             trace("[Link.ref url=\""+url+"\" target=\""+target+"\"]");
54         }
55     }
56    
57     /**
58      * 渡されたオブジェクトの値から、 Flash Player のコンテナを含むアプリケーション (通常はブラウザ) でウィンドウを開くか、置き換えます。
59          *
60      * @param   param リンク情報を持つオブジェクト
61          * @author  michi at seyself.com
62      */
63     public static function linkObject( param:Object ):void
64     {
65         var url:String, target:String;
66         if ( param.hasOwnProperty("url") )    url = param.url;
67         if ( param.hasOwnProperty("href") )   url = param.href;
68         if ( param.hasOwnProperty("window") ) target = param.window;
69         if ( param.hasOwnProperty("target") ) target = param.target;
70         link( url, target );
71     }
72    
73     /**
74      * 渡された XML の値から、 Flash Player のコンテナを含むアプリケーション (通常はブラウザ) でウィンドウを開くか、置き換えます。
75          *
76      * @param   xml リンク情報を持つ XML エレメント
77          * @author  michi at seyself.com
78      */
79     public static function linkXML( xml:XML ):void
80     {
81         var url:String, target:String;
82         if ( xml.attribute("url") )    url = xml.url;
83         if ( xml.attribute("href") )   url = xml.href;
84         if ( xml.attribute("window") ) target = xml.window;
85         if ( xml.attribute("target") ) target = xml.target;
86         link( url, target );
87     }
88    
89     /**
90      * URL リクエストをサーバーに送信し、データを受信する URLLoader オブジェクトを取得します。
91          *
92      * @param   url データの送受信を行う URL
93      * @param   params 送信するデータ
94      * @param   method HTTP フォーム送信メソッドが GET または POST のどちらの操作であるかを制御します。
95      * @param   dataFormat ダウンロードしたデータが text, binary, variables のいずれであるかを制御します。
96      * @return  送信に使われた URLLoader オブジェクト
97          * @author  michi at seyself.com
98      */
99     public static function request(url:String, params:Object = null,
100         method:String="POST", dataFormat:String="text"):URLLoader
101     {
102         var request:URLRequest = new URLRequest( url );
103         var vars:URLVariables = new URLVariables();
104         if( params ){
105             for (var val:String in params) vars[val] = params[val];
106         }
107         request.data = vars;
108         request.method = method;
109         var loader:URLLoader = new URLLoader();
110         loader.dataFormat = dataFormat;
111         loader.load( request );
112         return loader;
113     }
114    
115     /**
116      * 指定された URL からデータをロードします。
117          *
118      * @param   url データを受け取る URL
119      * @param   dataFormat ダウンロードしたデータが text, binary, variables のいずれであるかを制御します。
120      * @return  送信に使われた URLLoader オブジェクト
121          * @author  michi at seyself.com
122      */
123     public static function load(url:String, dataFormat:String="text"):URLLoader
124     {
125         var request:URLRequest = new URLRequest( url );
126         var loader:URLLoader = new URLLoader();
127         loader.dataFormat = dataFormat;
128         loader.load( request );
129         return loader;
130     }
131    
132     /**
133      * URL リクエストをサーバーに送信しますが、応答は無視します。
134          *
135      * @param   url データの送信先の URL
136      * @param   params 送信するデータ
137      * @param   method HTTP フォーム送信メソッドが GET または POST のどちらの操作であるかを制御します。
138          * @author  michi at seyself.com
139      */
140     public static function send(url:String, params:Object=null, method:String="POST"):void
141     {
142         var request:URLRequest = new URLRequest( url );
143         var vars:URLVariables = new URLVariables();
144         if( params ){
145             for (var val:String in params) vars[val] = params[val];
146         }
147         request.method = method;
148         request.data = vars;
149         sendToURL( request );
150     }
151    
152    
153 }
154
155 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。