Главная / Action Script 3
Пакетflash.net
Классpublic final class URLRequest
НаследованиеURLRequest Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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:

Файлы, находящиеся в изолированной программной среде приложения, то есть установленные вместе с приложением 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
Версии среды выполнения:  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
Версии среды выполнения:  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
Версии среды выполнения:  1.0 9

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

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

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

При отправке запроса POST значения свойств contentType и data должны быть надлежащим образом согласованы. Значение свойства contentType указывает серверам, как интерпретировать значение свойства data.

В приложении Flash Player 10 и более поздней версии при использовании типа содержимого multipart (например, multipart/form-data), в котором содержится отправка (обозначена параметром filename в заголовке content-disposition в теле оператора POST), к операции POST применяются правила безопасности для отправок:

Кроме того, все объекты multipart Content-Type должны иметь допустимый синтаксис (в соответствии со стандартами RFC2046). Если синтаксис является недопустимым, к операции POST применяются правила безопасности, действующие для отправок.



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

См. также

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

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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
Версии среды выполнения:  1.0 9.0.115.0

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

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

Например, компонент Flex SDK включает SWZ-файл для среды Flex (и предоставляет строку дайджеста для этого SWZ-файла). Можно опубликовать этот SWZ-файл на веб-сервере и загрузить его в SWF-файл (с использованием метода load() объекта URLLoader). Если на компьютере конечного пользователя уже существует соответствующий кэшированный SWZ-файл, в приложении используется кэшированный SWZ-файл. (SWZ-файл соответствует, если его свойство digest соответствует свойству digest, указанному пользователем.) В противном случае в приложении выполняется загрузка SWZ-файла с использованием указанного URL-адреса.

Параметр digest необходимо задать только в объекте URLRequest, используемом в обращении к методу URLLoader.load() для загрузки SWZ-файла. Если свойство digest объекта URLRequest задается при использовании объекта в другом методе, в приложении создается исключение IOError.



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

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

Пример
В следующем примере удаленный файл загружается в кэш-память. В конце загрузки массив байт содержит действительный файл (а не подписанный). В этом примере операция загрузки завершается путем вызова метода 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
Версии среды выполнения:  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
Версии среды выполнения:  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
Версии среды выполнения:  1.0 9

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

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

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

Примечание. Если в 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
Версии среды выполнения:  1.0 9

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

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

Среда выполнения Flash Player и AIR накладывают Среда выполнения 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
Версии среды выполнения:  1.0 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
Версии среды выполнения:  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
Версии среды выполнения:  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
Версии среды выполнения:  1.0 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);
        }
    }
}