Difference between revisions of "Function cgiGet()"
Jump to navigation
Jump to search
Line 5: | Line 5: | ||
=== Parameters === | === Parameters === | ||
− | <i>table</i> < | + | <i>table</i> config{<code>url</code>, <code>callback</code>, <code style="color: #777">timeout</code>, <code style="color: #777">bufferSize</code>} |
* <i>string</i> <code>url</code> address to call | * <i>string</i> <code>url</code> address to call | ||
* <i>function{response}</i> <code>callback</code> this function is called when response arrives | * <i>function{response}</i> <code>callback</code> this function is called when response arrives | ||
Line 12: | Line 12: | ||
=== Callback Parameters === | === Callback Parameters === | ||
− | <i>table</i> < | + | <i>table</i> response{<code>result</code>, <code>errInfo</code>, <code>received</code>, <code>buffer</code>} |
* <i>number</i> <code>result</code> error code of the response (see below) | * <i>number</i> <code>result</code> error code of the response (see below) | ||
* <i>string</i> <code>errInfo</code> error description (if result>0) | * <i>string</i> <code>errInfo</code> error description (if result>0) |
Revision as of 22:13, 19 April 2017
Execute HTTP GET call to given url and read the response. The call is asynchronous: the code execution proceeds immediately and when the response arrives, callback function is called. To perform simple HTTP GET call without response handling, use simpler devices.system.CustomCGI()
nil devices.system.cgiGet{config
}
Parameters
table config{url
,callback
,timeout
,bufferSize
}
- string
url
address to call - function{response}
callback
this function is called when response arrives - optional number
timeout
maximum seconds to wait for response (default 30) - optional number
bufferSize
bytes of memory to allocate for response (min. 4k, max 1M)
Callback Parameters
table response{result
,errInfo
,received
,buffer
}
- number
result
error code of the response (see below) - string
errInfo
error description (if result>0) - number
received
response length - string
buffer
response body
Error Code of the response
- 0 success, response HTTP/GET 2xx
- 22 response HTTP/GET 4xx
- 27 buffer overflow
- 28 response is timed out
Return value
nil
Usage
-- callback function to read the response local function getResponse{response} if response.result > 0 then logf("response failed with error code %d.", response.result) else logf("current credit is %d", tonumber(response.buffer)) end end -- sends HTTP request and handles the response devices.system.CgiGet{url="http://example.com/getcredit?id=42",getResponse}
Requirements
Netio FirmWare 2.3.5+
See also
- devices.system.CustomCGI() to send HTTP request without response handling