An HttpClientRequest object lets you perform certain operations as an HTTP client.
Exemple :
var req = new HttpClientRequest("http://www.somewhere.com/login")
var buffer = new MemoryBuffer()
buffer.fromString("MyLogin" + ':' + "MyPassword", "iso-8859-1")
req.header["Authorization"] = "Basic " + buffer.toBase64()
req.header["Content-Type"] = "text/xml; charset=utf-8"
req.method = "SEARCH"
req.body = "<xml>any content</xml>"
req.execute()
The status of the object depends on the method use sequence. If the connect() method is called, the object switches to "keep alive" mode.
Example
var req = new HttpClientRequest("http://evc-cit.info/cgi-bin/cit042/timeofday.cgi")
req.connect()
// Now the object is in keep-alive mode, we can sand many requests using
// the same connection
// Request ten times the time of the cgi
var i = 0
while ( i < 10 )
{
req.execute()
var response = req.reponse
i++
}
req.disconnect()
It is also possible to execute queries in asynchronous mode. In this case, the execute function returns control immediately, and a function will be called once the response is received. This enables the simultaneous execution of several queries.
The following program is a full example that shows you how to run a series of HTTP uploads opening 3 connections at the same time, where each upload starts once the last one is finished.
var list = [
"http://www.neolane.com/",
"http://www.google.com/",
"http://www.mozilla.org/",
"http://www.linux.org/",
"http://www.postgresql.org/"]
var requests = []
var complete = function(req, context, status)
{
if( status == "success" )
logInfo("Receiving " + context + ": " + req.url + ": code = " + req.response.code)
else
logWarning("Error " + context + ": " + req.url + ": " + status)
sendNext(context)
}
function sendNext(context)
{
// Repeat until the first execute() passes
while( list.length != 0 )
{
// Pick one URL from the list
var url = list.shift()
var req = new HttpClientRequest(url)
req.complete = complete
try
{
req.execute(false, true, context, 5000)
logInfo("Sending " + url)
requests.push(req)
return
}
catch(e)
{
// Log a message and pick up next item from list
logWarning("Failed to send " + url)
}
}
}
// Start 3 requests
sendNext(1)
sendNext(2)
sendNext(3)
// Wait until all requests are completed
HttpClientRequest.wait(requests)
logInfo("Finished.")
| HttpClientRequest | Creates a new object to run an HTTP client query. |
| connect | Opens the HTTP connection and passes the object into "keep-alive" mode |
| disconnect | Closes the HTTP connection of an object in "keep-alive" mode. |
| execute | Runs the HTTP query. |
| wait | Watis until the end of a list of asynchronous queries. |
| body | The body of the HTTP query. |
| complete | Function to call up when an asynchronous query is finished. |
| header | A JavaScript object which contains the Header's HTTP headers. |
| method | The HTTP method, in the form of a string of characters |
| response | The response of the HTTP query. This is a HttpClientResponse type object |
| url | The address of the remote server. |
- Content management
- Delivery properties
- Typology rule
- JSSP
- SOAP Method
- WebApp
- Workflow