Пакетflash.net
Классpublic final class URLRequest
НаследованиеURLRequest Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Класс URLRequest фиксирует все сведения в одном запросе HTTP. Объекты URLRequest передаются методам load() классов Loader, URLStream и URLLoader, а также другим операциям загрузки для инициации загрузок URL. Кроме того, они передаются методам upload() и download() класса FileReference.

SWF-файл в изолированной программной среде, локальной для файловой системы, может не поддерживать загрузку и передачу данных для ресурса, находящегося в сетевой изолированной программной среде.

По умолчанию вызывающий SWF-файл и загружаемый URL-адрес должны находиться в одном домене. Например, SWF-файл на www.adobe.com может загружать данные только из источников, которые также размещены на сайте www.adobe.com. Чтобы загрузить данные с другого домена, разместите файл политик для URL на сервере, где расположены эти данные.

Однако в Adobe AIR эти ограничения по безопасности не распространяются на содержимое в изолированной программной среде безопасности приложения (содержимое, установленное с приложением AIR). В Adobe AIR файлы, находящиеся в изолированной программной среде приложения могут обращаться к URL-адресам с использованием любой из следующих схем URL:

К содержимому в Adobe AIR, то есть за пределами изолированной программной среды безопасности приложения, применяются те же ограничения, что и к содержимому в обозревателе (в Flash Player), и загрузка управляется доменом содержимого и всем правами доступа, предоставленными в файлах политик для URL.

Дополнительные сведения о безопасности см. в следующих ресурсах.

Посмотреть примеры

См. также

FileReference
URLRequestHeader
URLRequestDefaults
URLLoader
URLStream
Класс HTMLLoader


Общедоступные свойства
 СвойствоОпределено
  AIR-only authenticate : Boolean
Указывает, должны обрабатываться запросы с аутентификацией (true) или нет (false).
URLRequest
  AIR-only cacheResponse : Boolean
Указывает, должны ли сохраняться в кэше данные успешного ответа на этот запрос.
URLRequest
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  contentType : String
MIME-тип содержимого в свойстве data.
URLRequest
  data : Object
Объект, содержащий данные, которые должны быть переданы с запросом URL.
URLRequest
  digest : String
Строка, уникальным образом идентифицирующая подписанный компонент платформы Adobe, который должен быть сохранен (или извлечен) в кэш-памяти проигрывателя Flash Player.
URLRequest
  AIR-only followRedirects : Boolean
Указывает, следует выполнять перенаправления (true) или нет (false).
URLRequest
  AIR-only manageCookies : Boolean
Определяет, должен ли стек протокола НТТР управлять файлами cookie для данного запроса.
URLRequest
  method : String
Управляет методом отправки форм НТТР.
URLRequest
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  requestHeaders : Array
Массив заголовков запроса HTTP, который должен быть добавлен к запросу HTTP.
URLRequest
  url : String
URL-адрес, к которому будет выполнен запрос.
URLRequest
  AIR-only useCache : Boolean
Указывает, необходимо ли обращаться в локальный кэш перед получением данных этим запросом URLRequest.
URLRequest
  AIR-only userAgent : String
Задает строку user-agent для запроса НТТР.
URLRequest
Общедоступные методы
 МетодОпределено
  
URLRequest(url:String = null)
Создает объект URLRequest.
URLRequest
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
AIR-only authenticateсвойство
authenticate:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0

Указывает, должны обрабатываться запросы с аутентификацией (true) или нет (false). При значении falseпопытки выполнить аутентификацию вызывают ошибку HTTP.

Поддерживаются следующие методы аутентификации:

Примечание. Методы FileReference.upload(), FileReference.download() и HTMLLoader.load() не поддерживают свойство URLRequest.authenticate.

Значение по умолчанию true


Реализация
    public function get authenticate():Boolean
    public function set authenticate(value:Boolean):void

Выдает
SecurityError — Вызывающий абонент не находится в изолированной программной среде AIR.

См. также

AIR-only cacheResponseсвойство 
cacheResponse:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0

Указывает, должны ли сохраняться в кэше данные успешного ответа на этот запрос. При значении true приложение AIR использует кэш HTTP операционной системы.

Примечание. Метод HTMLLoader.load() не поддерживает свойство URLRequest.cacheResponse.

Значение по умолчанию true


Реализация
    public function get cacheResponse():Boolean
    public function set cacheResponse(value:Boolean):void

Выдает
SecurityError — Вызывающий абонент не находится в изолированной программной среде AIR.

См. также

contentTypeсвойство 
contentType:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

MIME-тип содержимого в свойстве data.

Примечание. Методы FileReference.upload(), FileReference.download() и HTMLLoader.load() не поддерживают свойство URLRequest.contentType.

Примечание. При отправке запроса POST значения свойств contentType и data должны быть надлежащим образом согласованы. Значение свойства contentType указывает серверам, как интерпретировать значение свойства data. Если значением свойства data является объект URLVariables, значением contentType должно быть application/x-www-form-urlencoded. Если свойство data имеет значение любого другого типа, значение contentType должно указывать тип отправляемых данных POST (двоичные или строковые данные, содержащиеся в значении свойства data). Для метода FileReference.upload() тип содержимого запроса автоматически получает значение multipart/form-data, при этом значение свойства contentType игнорируется.

Значение по умолчанию: application/x-www-form-urlencoded.


Реализация
    public function get contentType():String
    public function set contentType(value:String):void

См. также

dataсвойство 
data:Object  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Объект, содержащий данные, которые должны быть переданы с запросом URL.

Данное свойство используется вместе со свойством method. Когда method имеет значение GET, значение data добавляется к значению URLRequest.url с использованием синтаксиса строки запроса HTTP. Когда method имеет значение POST (или любое другое, кроме GET), значение data передается в теле запроса HTTP.

API-интерфейс URLRequest поддерживает двоичный POST и переменные в кодировке URL-адреса, а также строки. Объект данных может быть следующего типа: ByteArray, URLVariables или String.

Способ применения данных зависит от типа используемого объекта:

Эти данные не отправляются до тех пор, пока метод (например, navigateToURL() или FileReference.upload()) не будет использовать объект URLRequest.

Примечание. Значение contentType должно соответствовать типу данных в свойстве data. См. примечание в описании свойства contentType.


Реализация
    public function get data():Object
    public function set data(value:Object):void

См. также


Пример
В следующем примере удаленное приложение, размещенное по адресу http://www.[yourDomain].com/application.jsp, открывается в новом окне обозревателя и передает приложению данные о сеансе пользователя, извлеченные из объекта URLVariables.

Основные моменты данного примера представлены ниже:

  1. Функция конструктора создает экземпляр URLRequest под именем request, принимая в качестве параметра URL-адрес удаленного приложения.
  2. Создается объект URLVariables, двум свойствам которого присваиваются значения.
  3. Объект URLVariables присваивается свойству data объекта URLRequest.
  4. В примере вызывается navigateToURL, открывающий новое окно обозревателя с URL-адресом удаленного приложения.

Примечание. Чтобы запустить данный пример, необходимо заменить в примере URL-адрес удаленного приложения на любой действующий URL-адрес. Вдобавок, необходимо, чтобы код сервера обработал информацию, захваченную проигрывателем Flash Player в объекте URLVariables.

package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLVariables;

    public class URLVariablesExample extends Sprite {

        public function URLVariablesExample() {
            var url:String = "http://www.[yourDomain].com/application.jsp";
            var request:URLRequest = new URLRequest(url);
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "guest";
            request.data = variables;
            navigateToURL(request);
        }
    }
}
digestсвойство 
digest:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9.0.115.0

Строка, уникальным образом идентифицирующая подписанный компонент платформы Adobe, который должен быть сохранен (или извлечен) в кэш-памяти проигрывателя Flash Player. Дайджест соответствует одному кэшированному файлу. При внесении любых изменений в файл его дайджест изменится непредсказуемым образом. С помощью дайджеста можно проверять кэшированный файл по нескольким доменам. Если у двух файлов одинаковый дайджест, это один и тот же файл. Если же у двух файлов разные дайджесты, значит, это не один и тот же файл. Практически невозможно создать файл с фальшивым дайджестом, и выдать его за другой. Это свойство применяется только к SWF-содержимому и не применяется к коду JavaScript, выполняемому в AIR.

Дайджест основан на алгоритме дайджеста сообщения SHA-256 (с длиной 64 в шестнадцатеричном формате).


Реализация
    public function get digest():String
    public function set digest(value:String):void

Выдает
ArgumentError — Предоставленный дайджест не совпадает с дайджестом файла, извлеченным из загруженного файла с подписью или из файла с подписью, загруженного из кэш-памяти. Flash Player также создает данную ошибку, если предоставленный дайджест имеет неправильную длину или содержит недопустимые (не шестнадцатеричные) символы.

Пример
В следующем примере удаленный файл загружается в кэш-память. В конце загрузки массив байт содержит действительный файл (а не подписанный). В этом примере операция загрузки завершается путем вызова метода loadBytes():
 
var myURLReq:URLRequest = new URLRequest();
myURLReq.url = "http://yourdomain/users/jdoe/test01/_rsc/Automated/AssetCaching_rsc/test01/rsl.swz";
myURLReq.digest = "3B0AA28C7A990385E044D80F5637FB036317BB41E044D80F5637FB036317BB41";
var myURLLoader:URLLoader = new URLLoader();
myURLLoader.dataFormat = URLLoaderDataFormat.BINARY;
myURLLoader.addEventListener("complete", onC);

myURLLoad.load(myURLReq);

function onC(e) {
    var someLoader:Loader = new Loader();
    addChild(someLoader);
    someLoader.loadBytes((ByteArray)(myURLLoad.data)); 
}

AIR-only followRedirectsсвойство 
followRedirects:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0

Задает, следует выполнять перенаправления (true) или нет (false).

Примечание. Методы FileReference.upload(), FileReference.download() и HTMLLoader.load() не поддерживают свойство URLRequest.followRedirects.

Значение по умолчанию true


Реализация
    public function get followRedirects():Boolean
    public function set followRedirects(value:Boolean):void

Выдает
SecurityError — Вызывающий абонент не находится в изолированной программной среде AIR.

См. также

AIR-only manageCookiesсвойство 
manageCookies:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0

Определяет, должен ли стек протокола НТТР управлять файлами cookie для данного запроса. При значении true файлы cookie добавляются в запрос и cookie ответа запоминаются. При значении false файлы cookie не добавляются в запрос и cookie ответа не запоминаются, однако пользователи могут самостоятельно управлять cookie путем непосредственных манипуляций с заголовком.

В системе Mac OS файлы cookie используются совместно с Safari. Чтобы удалить файлы cookie в Mac OS, выполните следующие действия.

  1. Откройте Safari.
  2. Выберите "Safari" > "Preferences" (Настройки) и щелкните панель "Security" (Безопасность).
  3. Нажмите кнопку "Show Cookies" (Показать cookie).
  4. Нажмите кнопку "Remove All" (Удалить все).

Чтобы удалить файлы cookie в Windows, выполните следующие действия.

  1. Откройте панель управления "Свойства обозревателя" и перейдите на вкладку "Общие".
  2. Нажмите кнопку "Удалить "Cookies"".

Значение по умолчанию true


Реализация
    public function get manageCookies():Boolean
    public function set manageCookies(value:Boolean):void

Выдает
SecurityError — Вызывающий абонент не находится в изолированной программной среде AIR.

См. также

methodсвойство 
method:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Управляет методом отправки форм НТТР.

Для SWF-содержимого, выполняемого в Flash Player (в обозревателе), это свойство ограничено операциями GET и POST, поэтому действительными являются значения URLRequestMethod.GET и URLRequestMethod.POST.

Для содержимого, выполняемого в Adobe AIR, можно использовать любое строковое значение, если содержимое находится в изолированной программной среде приложения. Если нет, то можно использовать только операции GET или POST, как и для содержимого в Flash Player,.

Примечание. Если в Flash Player указанная форма не имеет содержимого, проигрыватель автоматически использует операцию GET, даже если для метода установлено значение URLRequestMethod.POST. По этой причине рекомендуется всегда вставлять фиктивное содержимое, тем самым обеспечивая применение нужного метода.

Значение по умолчанию URLRequestMethod.GET


Реализация
    public function get method():String
    public function set method(value:String):void

Выдает
ArgumentError — Если параметр value не имеет значение URLRequestMethod.GET или URLRequestMethod.POST.

См. также


Пример
В следующем примере удаленное приложение, размещенное по адресу http://www.[yourDomain].com/application.jsp, открывается в новом окне обозревателя и передает приложению данные о сеансе пользователя, извлеченные из объекта URLVariables. Оно четко устанавливает для свойства URLRequest.method значение URLRequestMethod.POST.

Основные моменты данного примера представлены ниже:

  1. Функция конструктора создает экземпляр URLRequest под именем request, принимая в качестве параметра URL-адрес удаленного приложения.
  2. Создается объект URLVariables, двум свойствам которого присваиваются значения.
  3. Объект URLVariables присваивается свойству data объекта URLRequest.
  4. Для свойства URLRequest.method установлено значение URLRequestMethod.POST.
  5. В примере вызывается navigateToURL, открывающий новое окно обозревателя с URL-адресом удаленного приложения.

Примечание. Чтобы запустить данный пример, необходимо заменить в примере URL-адрес удаленного приложения на любой действующий URL-адрес. Вдобавок, необходимо, чтобы код сервера обработал информацию, захваченную проигрывателем Flash Player в объекте URLVariables.

package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;

    public class URLRequest_method extends Sprite {

        public function URLRequest_method() {
            var url:String = "http://www.[yourDomain].com/application.jsp";
            var request:URLRequest = new URLRequest(url);
            
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "guest";
            request.data = variables;
            request.method = URLRequestMethod.POST;
            
            navigateToURL(request);
        }
    }
}
requestHeadersсвойство 
requestHeaders:Array  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Массив заголовков запроса HTTP, который должен быть добавлен к запросу HTTP. Массив состоит из объектов URLRequestHeader. Каждый объект в массиве должен быть объектом URLRequestHeader, содержащим строку имени и строку значения, как показано ниже:

     var rhArray:Array = new Array(new URLRequestHeader("Content-Type", "text/html"));
     

Среда выполнения Flash Player и AIR накладывают определенные ограничения за заголовки запросов. Дополнительные сведения см. в описании класса URLRequestHeader.

Не все методы, принимающие параметры URLRequest, поддерживают свойство requestHeaders. Дополнительные сведения см. в описании вызываемого метода. Например, методы FileReference.upload() и FileReference.download() не поддерживают свойство URLRequest.requestHeaders.

Вследствие ограниченных возможностей обозревателей, пользовательские заголовки запросов НТТР поддерживаются только для запросов POST, а для GET — нет.


Реализация
    public function get requestHeaders():Array
    public function set requestHeaders(value:Array):void

См. также

urlсвойство 
url:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

URL-адрес, к которому будет выполнен запрос.

Обязательно закодируйте все символы, которые описаны как небезопасные в спецификации URL (см. http://www.faqs.org/rfcs/rfc1738.html) или зарезервированы в схеме URL объекта URLRequest (когда они не используются с указанной целью). Например, используйте "%25" для символа процентов (%) и "%23" для знака (#), как в "http://www.example.com/orderForm.cfm?item=%23B-3&discount=50%25".

По умолчанию URL должен находиться в том же домене, что и вызывающий файл, если содержимое не выполняется в изолированной программной среде безопасности приложения Adobe AIR. Если требуется загрузить данные из другого домена, на сервере, на котором находятся данные, необходимо поместить файл политик для URL. Подробные сведения см. в описании класса URLRequest.

В Adobe AIR файлы, находящиеся в изолированной программной среде приложения, то есть установленные вместе с приложением AIR, могут обращаться к URL-адресам с использованием любой из следующих схем URL:

Примечание. IPv6 (интернет-протокол версии 6) поддерживается в AIR и Flash Player 9.0.115.0 и более поздних версиях. IPv6 — это версия Internet Protocol (интернет-протокола), поддерживающего 128-разрядные адреса (усовершенствование протокола IPv4, поддерживающего только 32-разрядные адреса). Вам может потребоваться активировать IPv6 на используемых интерфейсах сетевых соединений. Более подробные сведения представлены в справочных документах операционной системы, в которой размещены ваши данные. Если система хостинга поддерживает IPv6, вы можете указывать цифровые адреса IPv6 в URL-адресах, заключенные в квадратные скобки ([ ]), как показано ниже.

     rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]:1935/test
     


Реализация
    public function get url():String
    public function set url(value:String):void
AIR-only useCacheсвойство 
useCache:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0

Указывает, необходимо ли обращаться в локальный кэш перед получением данных этим запросом URLRequest.

Примечание. Метод HTMLLoader.load() не поддерживает свойство URLRequest.useCache.

Значение по умолчанию true


Реализация
    public function get useCache():Boolean
    public function set useCache(value:Boolean):void

Выдает
SecurityError — Вызывающий абонент не находится в изолированной программной среде AIR.

См. также

AIR-only userAgentсвойство 
userAgent:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0

Задает строку user-agent для запроса НТТР.

Значением по умолчанию является та же строка user-agent, которая используется Flash Player (она отличается для Mac и Windows).

Примечание. Это свойство не затрагивает строку user-agent, когда объект URLRequest используется с методом load() объекта HTMLLoader. Чтобы задать строку user-agent для объекта HTMLLoader, настройте свойство userAgent объекта HTMLLoader или статическое свойство URLRequestDefaults.userAgent.


Реализация
    public function get userAgent():String
    public function set userAgent(value:String):void

Выдает
SecurityError — Вызывающий абонент не находится в изолированной программной среде AIR.

См. также

Сведения о конструкторе
URLRequest()Конструктор
public function URLRequest(url:String = null)

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Создает объект URLRequest. Если параметр System.useCodePage имеет значение true, запрос кодируется с помощью не Unicode, а системной кодовой страницы. Если параметр System.useCodePage имеет значение false, запрос кодируется не с использованием системной кодовой страницы, а с помощью Unicode.

Параметры
url:String (default = null) — URL-адрес, к которому будет выполнен запрос. Установить URL-адрес можно позже, используя свойство url.

См. также

Примеры Как пользоваться примерами
URLRequestExample.as

В следующем примере создается новый объект Loader, которому затем передается объект URLRequest, содержащий путь к XML-файлу. При успешном выполнении операции загрузки отправляется событие complete, а данные в XML-файле переходят в выходные данные. Дополнительные обработчики событий регистрируют другие события, включая ошибки.

Чтобы запустить данный пример, поместите файл XMLFile.xml в тот каталог, где находится рассматриваемый SWF-файл.


package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;

    public class URLRequestExample extends Sprite {

        public function URLRequestExample() {
            var loader:URLLoader = new URLLoader();
            configureListeners(loader);

            var request:URLRequest = new URLRequest("XMLFile.xml");
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document.");
            }
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }

        private function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
    }
}