openfl
Version:
A fast, productive library for 2D cross-platform development.
277 lines (252 loc) • 10.9 kB
TypeScript
import URLRequestHeader from "./URLRequestHeader";
declare namespace openfl.net {
/**
* The URLRequest class captures all of the information in a single HTTP
* request. URLRequest objects are passed to the `load()` methods
* of the Loader, URLStream, and URLLoader classes, and to other loading
* operations, to initiate URL downloads. They are also passed to the
* `upload()` and `download()` methods of the
* FileReference class.
*
* A SWF file in the local-with-filesystem sandbox may not load data from,
* or provide data to, a resource that is in the network sandbox.
*
* By default, the calling SWF file and the URL you load must be in 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.
*
* However, in Adobe AIR, content in the application security sandbox
* (content installed with the AIR application) is not restricted by these
* security limitations. For content running in Adobe AIR, files in the
* application security sandbox can access URLs using any of the following URL
* schemes:
*
*
* * `http` and `https`
* * `file`
* * `app-storage`
* * `app`
*
*
* Content running in Adobe AIR that is not in the application security
* sandbox observes the same restrictions as content running in the browser
* (in Flash Player), and loading is governed by the content's domain and any
* permissions granted in URL policy files.
*
* For more information related to security, see the Flash Player Developer
* Center Topic: [Security](http://www.adobe.com/go/devnet_security_en).
*/
/*@:final*/ export class URLRequest {
/**
* The MIME content type of the content in the the `data`
* property.
*
* The default value is
* `application/x-www-form-urlencoded`.
*
* **Note**:The `FileReference.upload()`,
* `FileReference.download()`, and `HTMLLoader.load()`
* methods do not support the `URLRequest.contentType`
* property.
*
* When sending a POST request, the values of the `contentType`
* and `data` properties must correspond properly. The value of
* the `contentType` property instructs servers on how to
* interpret the value of the `data` property.
*
*
* * If the value of the `data` property is a URLVariables
* object, the value of `contentType` must be
* `application/x-www-form-urlencoded`.
* * If the value of the `data` property is any other type,
* the value of `contentType` should indicate the type of the POST
* data that will be sent(which is the binary or string data contained in
* the value of the `data` property).
* * For `FileReference.upload()`, the Content-Type of the
* request is set automatically to `multipart/form-data`, and the
* value of the `contentType` property is ignored.
*
*
* In Flash Player 10 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.
*/
contentType:string;
/**
* An object containing data to be transmitted with the URL request.
*
* This property is used in conjunction with the `method`
* property. When the value of `method` is `GET`, the
* value of `data` is appended to the value of
* `URLRequest.url`, using HTTP query-string syntax. When the
* `method` value is `POST`(or any value other than
* `GET`), the value of `data` is transmitted in the
* body of the HTTP request.
*
* The URLRequest API offers binary `POST` support and support
* for URL-encoded variables, as well as support for strings. The data object
* can be a ByteArray, URLVariables, or String object.
*
* The way in which the data is used depends on the type of object
* used:
*
*
* * If the object is a ByteArray object, the binary data of the
* ByteArray object is used as `POST` data. For `GET`,
* data of ByteArray type is not supported. Also, data of ByteArray type is
* not supported for `FileReference.upload()` and
* `FileReference.download()`.
* * If the object is a URLVariables object and the method is
* `POST`, the variables are encoded using
* _x-www-form-urlencoded_ format and the resulting string is used as
* `POST` data. An exception is a call to
* `FileReference.upload()`, in which the variables are sent as
* separate fields in a `multipart/form-data` post.
* * If the object is a URLVariables object and the method is
* `GET`, the URLVariables object defines variables to be sent
* with the URLRequest object.
* * Otherwise, the object is converted to a string, and the string is
* used as the `POST` or `GET` data.
*
*
* This data is not sent until a method, such as
* `navigateToURL()` or `FileReference.upload()`, uses
* the URLRequest object.
*
* **Note**: The value of `contentType` must correspond to
* the type of data in the `data` property. See the note in the
* description of the `contentType` property.
*/
data:object;
// #if flash
// @:noCompletion @:dox(hide) digest:string;
// #end
followRedirects:boolean;
idleTimeout:number;
manageCookies:boolean;
/**
* Controls the HTTP form submission method.
*
* For SWF content running in Flash Player(in the browser), this property
* is limited to GET or POST operations, and valid values are
* `URLRequestMethod.GET` or
* `URLRequestMethod.POST`.
*
* For content running in Adobe AIR, you can use any string value if the
* content is in the application security sandbox. Otherwise, as with content
* running in Flash Player, you are restricted to using GET or POST
* operations.
*
* For content running in Adobe AIR, when using the
* `navigateToURL()` function, the runtime treats a URLRequest
* that uses the POST method(one that has its `method` property
* set to `URLRequestMethod.POST`) as using the GET method.
*
* **Note:** If running in Flash Player and the referenced form has no
* body, Flash Player automatically uses a GET operation, even if the method
* is set to `URLRequestMethod.POST`. For this reason, it is
* recommended to always include a "dummy" body to ensure that the correct
* method is used.
*
* @default URLRequestMethod.GET
* @throws ArgumentError If the `value` parameter is not
* `URLRequestMethod.GET` or
* `URLRequestMethod.POST`.
*/
method:string;
/**
* The array of HTTP request headers to be appended to the HTTP request. The
* array is composed of URLRequestHeader objects. Each object in the array
* must be a URLRequestHeader object that contains a name string and a value
* string, as follows:
*
* Flash Player and the AIR runtime impose certain restrictions on request
* headers; for more information, see the URLRequestHeader class
* description.
*
* Not all methods that accept URLRequest parameters support the
* `requestHeaders` property, consult the documentation for the
* method you are calling. For example, the
* `FileReference.upload()` and
* `FileReference.download()` methods do not support the
* `URLRequest.requestHeaders` property.
*
* Due to browser limitations, custom HTTP request headers are only
* supported for `POST` requests, not for `GET`
* requests.
*/
requestHeaders:Array<URLRequestHeader>;
/**
* The URL to be requested.
*
* Be sure to encode any characters that are either described as unsafe in
* the Uniform Resource Locator specification(see
* http://www.faqs.org/rfcs/rfc1738.html) or that are reserved in the URL
* scheme of the URLRequest object(when not used for their reserved
* purpose). For example, use `"%25"` for the percent(%) symbol
* and `"%23"` for the number sign(#), as in
* `"http://www.example.com/orderForm.cfm?item=%23B-3&discount=50%25"`.
*
* By default, the URL must be in the same domain as the calling file,
* unless the content is running in the Adobe AIR application security
* sandbox. If you need to load data from a different domain, put a URL
* policy file on the server that is hosting the data. For more information,
* see the description of the URLRequest class.
*
* For content running in Adobe AIR, files in the application security
* sandobx - files installed with the AIR application - can access URLs
* using any of the following URL schemes:
*
*
* * `http` and `https`
* * `file`
* * `app-storage`
* * `app`
*
*
* **Note:** IPv6(Internet Protocol version 6) is supported in AIR and
* in Flash Player 9.0.115.0 and later. IPv6 is a version of Internet
* Protocol that supports 128-bit addresses(an improvement on the earlier
* IPv4 protocol that supports 32-bit addresses). You might need to activate
* IPv6 on your networking interfaces. For more information, see the Help for
* the operating system hosting the data. If IPv6 is supported on the hosting
* system, you can specify numeric IPv6 literal addresses in URLs enclosed in
* brackets([]), as in the following.
* `rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]:1935/test`
*/
url:string;
userAgent:string;
/**
* Creates a URLRequest object. If `System.useCodePage` is
* `true`, the request is encoded using the system code page,
* rather than Unicode. If `System.useCodePage` is
* `false`, the request is encoded using Unicode, rather than the
* system code page.
*
* @param url The URL to be requested. You can set the URL later by using the
* `url` property.
*/
constructor (url?:string);
// #if flash
// @:noCompletion @:dox(hide) public function useRedirectedURL (sourceRequest:URLRequest, wholeURL:boolean = false, pattern:Dynamic = null, replace:string = null):Void;
// #end
}
}
export default openfl.net.URLRequest;