HttpRequest
Direct Subclass:
Indirect Subclass:
API for performing HTTP requests.
Example:
const request = new HttpRequest('http://example.com/api/users/')
request.post('Hello world')
.then((response) => {
// Success - response is a HttpResponse object.
console.log(response.toString())
if(response.isSuccess()) {
console.log('Success: ', response.body)
} else if (response.isRedirect) {
console.log('Hmm strange, we got a redirect instead of a 2xx response.')
}
})
.catch((error) => {
// Error - response is an HttpResponse object.
console.error(error.toString())
if(error.response.isRedirect()) {
// Yes - redirect is treated as an error by default.
// you can change this by supplying an extra argument
// to HttpResponse()
console.log('We got a 3xx response!', error.response.body)
} else if(error.response.isClientError()) {
console.log('We got a 4xx response!', error.response.body)
} else if (error.response.isServerError()) {
console.log('We got a 5xx response!', error.response.body)
} else if (error.response.isConnectionRefused()) {
console.log('Connection refused.')
}
// throw error // You can throw the error as an exception
})
const request = new HttpRequest('http://example.com/api/users/')
request.urlParser.queryString.set('search', 'doe')
request.get()
.then((response) => {
console.log('Success!', response.toString())
})
.catch((error) => {
console.error('Error:', error.toString())
})
Constructor Summary
Public Constructor | ||
public |
constructor(url: string) |
Member Summary
Public Members | ||
public |
request: * |
|
public |
|
|
public get |
Get the parsed URL of the request. |
Method Summary
Public Methods | ||
public |
deepCopy(): * Create a deep copy of this HttpRequest object. |
|
public |
get(data: *): * Shortcut for |
|
public |
head(data: *): * Shortcut for |
|
public |
httpdelete(data: *): * Shortcut for |
|
public |
makeRequestBody(data: *): * Make request body from the provided data. |
|
public |
Creates a HttpResponse. |
|
public |
patch(data: *): * Shortcut for |
|
public |
post(data: *): * Shortcut for |
|
public |
put(data: *): * Shortcut for |
|
public |
Send the request. |
|
public |
setDefaultRequestHeaders(method: *) Set default request headers. |
|
public |
setRequestHeader(header: *, value: *) Set a request header. |
|
public |
setTreatRedirectResponseAsError(treatRedirectResponseAsError: bool) Set how we treat 3xx responses. |
|
public |
Set the URL of the request. |
Public Constructors
public constructor(url: string) source
Params:
Name | Type | Attribute | Description |
url | string | The URL to request. If this is supplied, it is passed to HttpRequest#setUrl |
Public Methods
public deepCopy(): * source
Create a deep copy of this HttpRequest object.
WARNING: This does not copy request headers since those are set on the XMLHttpRequest object, and that object is reset in the copy.
Return:
* | The copy. |
public get(data: *): * source
Shortcut for send("get", data)
.
Params:
Name | Type | Attribute | Description |
data | * |
Return:
* |
See:
public head(data: *): * source
Shortcut for send("head", data)
.
Params:
Name | Type | Attribute | Description |
data | * |
Return:
* |
See:
public httpdelete(data: *): * source
Shortcut for send("delete", data)
.
Named httpdelete to avoid crash with builtin keyword delete
.
Params:
Name | Type | Attribute | Description |
data | * |
Return:
* |
See:
public makeRequestBody(data: *): * source
Make request body from the provided data.
By default this just returns the provided data, but subclasses can override this to perform automatic conversion.
Must return a string.
Params:
Name | Type | Attribute | Description |
data | * |
Return:
* |
public patch(data: *): * source
Shortcut for send("patch", data)
.
Params:
Name | Type | Attribute | Description |
data | * |
Return:
* |
See:
public post(data: *): * source
Shortcut for send("post", data)
.
Params:
Name | Type | Attribute | Description |
data | * |
Return:
* |
See:
public put(data: *): * source
Shortcut for send("put", data)
.
Params:
Name | Type | Attribute | Description |
data | * |
Return:
* |
See:
public send(method: *, data: *): Promise source
Send the request.
Params:
Name | Type | Attribute | Description |
method | * | The HTTP method. I.e.: "get", "post", ... |
|
data | * | Request body data. This is sent through HttpRequest#makeRequestBody before it is sent.* |
Return:
Promise | A Promise.
|
public setDefaultRequestHeaders(method: *) source
Set default request headers.
Does nothing by default, but subclasses can override this.
Params:
Name | Type | Attribute | Description |
method | * | The HTTP request method (GET, POST, PUT, ...). Will always be uppercase. |
public setRequestHeader(header: *, value: *) source
Set a request header.
Params:
Name | Type | Attribute | Description |
header | * | The header name. E.g.: |
|
value | * | The header value. |
public setTreatRedirectResponseAsError(treatRedirectResponseAsError: bool) source
Set how we treat 3xx responses.
By default they are treated as errors, but you can change this behavior by calling this function.
Params:
Name | Type | Attribute | Description |
treatRedirectResponseAsError | bool | Treat 3xx responses as errors? |
Example:
const request = HttpRequest('http://example.com/api/')
request.setTreatRedirectResponseAsError(false)