flash.media

# AVURLStream - AS3

Package | flash.media
Class | public class AVURLStream
Inheritance | AVURLStream URLStream EventDispatcher Object

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9, Flash Lite 4

The URLStream class provides low-level access to downloading URLs. Data is made available to application code immediately as it is downloaded, instead of waiting until the entire file is complete as with URLLoader. The URLStream class also lets you close a stream before it finishes downloading. The contents of the downloaded file are made available as raw binary data.

The read operations in URLStream are nonblocking. This means that you must use the `bytesAvailable` property to determine whether sufficient data is available before reading it. An `EOFError` exception is thrown if insufficient data is available.

All binary data is encoded by default in big-endian format, with the most significant byte first.

The security rules that apply to URL downloading with the URLStream class are identical to the rules applied to URLLoader objects. Policy files may be downloaded as needed. Local file security rules are enforced, and security warnings are raised as needed.

Related API Elements

URLLoader
URLRequest

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | bytesAvailable : uint [read-only] Returns the number of bytes of data available for reading in the input buffer. | URLStream
|  | connected : Boolean [read-only] Indicates whether this URLStream object is currently connected. | URLStream
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | cookieHeader : String [write-only] | AVURLStream
|  | endian : String Indicates the byte order for the data. | URLStream
|  | objectEncoding : uint Controls the version of Action Message Format (AMF) used when writing or reading an object. | URLStream

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | EventDispatcher
|  | close():void Immediately closes the stream and cancels the download operation. | URLStream
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | EventDispatcher
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | EventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | load(request:URLRequest):void [override] Begins downloading the URL specified in the request parameter. | AVURLStream
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | readBoolean():Boolean Reads a Boolean value from the stream. | URLStream
|  | readByte():int Reads a signed byte from the stream. | URLStream
|  | readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void Reads length bytes of data from the stream. | URLStream
|  | readDouble():Number Reads an IEEE 754 double-precision floating-point number from the stream. | URLStream
|  | readFloat():Number Reads an IEEE 754 single-precision floating-point number from the stream. | URLStream
|  | readInt():int Reads a signed 32-bit integer from the stream. | URLStream
|  | readMultiByte(length:uint, charSet:String):String Reads a multibyte string of specified length from the byte stream using the specified character set. | URLStream
|  | readObject():* Reads an object from the socket, encoded in Action Message Format (AMF). | URLStream
|  | readShort():int Reads a signed 16-bit integer from the stream. | URLStream
|  | readUnsignedByte():uint Reads an unsigned byte from the stream. | URLStream
|  | readUnsignedInt():uint Reads an unsigned 32-bit integer from the stream. | URLStream
|  | readUnsignedShort():uint Reads an unsigned 16-bit integer from the stream. | URLStream
|  | readUTF():String Reads a UTF-8 string from the stream. | URLStream
|  | readUTFBytes(length:uint):String Reads a sequence of length UTF-8 bytes from the stream, and returns a string. | URLStream
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | EventDispatcher
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | EventDispatcher

Events
Click for more information on events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | activate | [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher
|  | complete | Dispatched when data has loaded successfully. | URLStream
|  | deactivate | [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive. | EventDispatcher
|  | httpResponseStatus | Dispatched if a call to the URLStream.load() method attempts to access data over HTTP and Adobe AIR is able to detect and return the status code for the request. | URLStream
|  | httpStatus | Dispatched if a call to URLStream.load() attempts to access data over HTTP, and Flash Player or Adobe AIR is able to detect and return the status code for the request. | URLStream
|  | ioError | Dispatched when an input/output error occurs that causes a load operation to fail. | URLStream
|  | open | Dispatched when a load operation starts. | URLStream
|  | progress | Dispatched when data is received as the download operation progresses. | URLStream
|  | securityError | Dispatched if a call to URLStream.load() attempts to load data from a server outside the security sandbox. | URLStream

Property Detail

### cookieHeader

property

`cookieHeader:String` [write-only]

Implementation
`public function set cookieHeader(value:String):void`
Method Detail

### load

()
method

`override public function load(request:URLRequest):void`

Language Version: | ActionScript 3.0

Runtime Versions: | AIR 1.0, Flash Player 9, Flash Lite 4

Begins downloading the URL specified in the `request` parameter.

Note: If a file being loaded contains non-ASCII characters (as found in many non-English languages), it is recommended that you save the file with UTF-8 or UTF-16 encoding, as opposed to a non-Unicode format like ASCII.

If the loading operation fails immediately, an IOError or SecurityError (including the local file security error) exception is thrown describing the failure. Otherwise, an `open` event is dispatched if the URL download starts downloading successfully, or an error event is dispatched if an error occurs.

By default, the calling SWF file and the URL you load must be in exactly the same domain. For example, a SWF file at www.adobe.com can load data only from sources that are also at www.adobe.com. To load data from a different domain, place a URL policy file on the server hosting the data.

In Flash Player, you cannot connect to commonly reserved ports. For a complete list of blocked ports, see "Restricting Networking APIs" in the ActionScript 3.0 Developer's Guide.

In Flash Player, you can prevent a SWF file from using this method by setting the `allowNetworking` parameter of the the `object` and `embed` tags in the HTML page that contains the SWF content.

In Flash Player 10 and later, and in AIR 1.5 and later, if you use a multipart Content-Type (for example "multipart/form-data") that contains an upload (indicated by a "filename" parameter in a "content-disposition" header within the POST body), the POST operation is subject to the security rules applied to uploads:

- The POST operation must be performed in response to a user-initiated action, such as a mouse click or key press.
- If the POST operation is cross-domain (the POST target is not on the same server as the SWF file that is sending the POST request), the target server must provide a URL policy file that permits cross-domain access.

Also, for any multipart Content-Type, the syntax must be valid (according to the RFC2046 standards). If the syntax appears to be invalid, the POST operation is subject to the security rules applied to uploads.

These rules also apply to AIR content in non-application sandboxes. However, in Adobe AIR, content in the application sandbox (content installed with the AIR application) are not restricted by these security limitations.

For more information related to security, see The Flash Player Developer Center Topic: Security.

In AIR, a URLRequest object can register for the `httpResponse` status event. Unlike the `httpStatus` event, the `httpResponseStatus` event is delivered before any response data. Also, the `httpResponseStatus` event includes values for the `responseHeaders` and `responseURL` properties (which are undefined for an `httpStatus` event. Note that the `httpResponseStatus` event (if any) will be sent before (and in addition to) any `complete` or `error` event.

If there is an `httpResponseStatus` event listener, the body of the response message is always sent; and HTTP status code responses always results in a `complete` event. This is true in spite of whether the HTTP response status code indicates a success or an error.

In AIR, if there is no `httpResponseStatus` event listener, the behavior differs based on the SWF version:

- For SWF 9 content, the body of the HTTP response message is sent only if the HTTP response status code indicates success. Otherwise (if there is an error), no body is sent and the URLRequest object dispatches an IOError event.
- For SWF 10 content, the body of the HTTP response message is always sent. If there is an error, the URLRequest object dispatches an IOError event.

Parameters

| `request:URLRequest` — A URLRequest object specifying the URL to download. If the value of this parameter or the `URLRequest.url` property of the URLRequest object passed are `null`, the application throws a null pointer error.

Events

| `complete:`Event`` — Dispatched after data has loaded successfully. If there is a `httpResponseStatus` event listener, the URLRequest object also dispatches a `complete` event whether the HTTP response status code indicates a success or an error.
| `httpStatus:`HTTPStatusEvent`` — If access is by HTTP and the current environment supports obtaining status codes, you may receive these events in addition to any `complete` or `error` event.
| `httpResponseStatus:`HTTPStatusEvent`` — Dispatched if a call to the `load()` method attempts to access data over HTTP and Adobe AIR is able to detect and return the status code for the request.
| `ioError:`IOErrorEvent`` — The load operation could not be completed.
| `open:`Event`` — Dispatched when a load operation starts.
| `securityError:`SecurityErrorEvent`` — A load operation attempted to retrieve data from a server outside the caller's security sandbox. This may be worked around using a policy file on the server.

Throws

| `ArgumentError` — `URLRequest.requestHeader` objects may not contain certain prohibited HTTP request headers. For more information, see the URLRequestHeader class description.
| `MemoryError` — This error can occur for the following reasons:

1. Flash Player or Adobe AIR cannot convert the `URLRequest.data` parameter from UTF8 to MBCS. This error is applicable if the URLRequest object passed to `load()` is set to perform a `GET` operation and if `System.useCodePage` is set to `true`.
2. Flash Player or Adobe AIR cannot allocate memory for the `POST` data. This error is applicable if the URLRequest object passed to load is set to perform a `POST` operation.

| `SecurityError` — Local untrusted SWF files may not communicate with the Internet. This may be worked around by reclassifying this SWF file as local-with-networking or trusted.
| `SecurityError` — You are trying to connect to a commonly reserved port. For a complete list of blocked ports, see "Restricting Networking APIs" in the ActionScript 3.0 Developer's Guide.

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00