Cnanges in HTTP Driver
In iRIdium mobile 3.0 HTTP driver was improved. New functions were added.
Now a packet can be formed on your own.
Sending data to a device
Data: [""],
cbReceiveData - function of processing receive in DATA format with the following parameters:
data - data,
code - answer from the server,
headers - headers.
cbRecieveText - Processing function from receive TEXT format, with the following parameters:
data - data,
code - answer from the server,
headers - headers.
cbReceiveCode - Function of getting an answer from the server with the following patamaters:
code - answer from the server .
cbRecievePartBody - "Body" function of processing and receiving the stream.
Now a packet can be formed on your own.
Sending data to a device
IR.GetDevice("AV & Custom Systems (HTTP)")..SendEx(
{
Type: "Type of forming a request", The following types are possible GET, POST, PUT.
Url: "Link to the object that is requested",
For POST and PUT requests Data field is also available.Data: [""],
The next block is Header. it is what your client must send to the requested server.
Headers: {
"Accept": "application/xml;",
"Accept-Language": "de,en-us;q=0.7,en;q=0.3",
"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
},
New functions are added. A capability was added to get an answer from the server to any request. Now a definite receive can be added to a definite request. Before it there was only one common receive for the driver.cbReceiveData - function of processing receive in DATA format with the following parameters:
data - data,
code - answer from the server,
headers - headers.
cbReceiveData: function(data, code, headers) { IR.Log("Data receipt in Data format: \n Code answer from the server: " + code + "\n Data: "+ data); },
cbRecieveText - Processing function from receive TEXT format, with the following parameters:
data - data,
code - answer from the server,
headers - headers.
cbReceiveText: function(text, code, headers) {IR.Log("Data receipt in Text format: \n Code answer from the server: " +code + "\n Data: " + text + "\n Headers: " + headers);},
cbRecieveKey - Header processing function, with the following parameters:
key - header
value - header value.
cbReceiveKey: function(key, value) {IR.Log("Headers: "+ key + "\n Header value: "+ value);},
cbReceiveCode - Function of getting an answer from the server with the following patamaters:
code - answer from the server .
cbReceiveCode: function(code) {IR.Log("Code answer from the server: "+code);},
cbRecieveStartBody - function of starting processing work with the answer from the server
cbReceiveStartBody: function() {},
cbRecievePartBody - "Body" function of processing and receiving the stream.
cbReceivePartBody: function(stream) {IR.Log("Receiving data in ByteStream format (Data object): "+stream);},
cbRecieveEndBody - function of finishing work with the stream
cbReceiveEndBody: function(size) {IR.Log("Size of received stream (Stream): "+size);} ,
cbTimeOut - processing function with time for waiting an answer from the server.
cbTimeOut: function() {IR.Log("cbTimeOut: TimeOut")},
cbRecieveStream - stream processing function.
cbReceiveStream: function(stream, code, headers) { IR.Log("Receiving data in ByteStream format: \n Code answer from the server: " +code + "\n Data object: " + stream); }
})
You can see how it's realized a driver in the attached project Full test HTTP_v2.irpzCustomer support service by UserEcho