Difference between revisions of "Function cgiGet()"
Jump to navigation
Jump to search
(→Usage) |
|||
Line 37: | Line 37: | ||
-- send HTTP request and handle response | -- send HTTP request and handle response | ||
− | cgiGet{url="http://httpbin.org/ip", timeout=2 | + | cgiGet{url="http://httpbin.org/ip", callback=logOurIp, timeout=2} |
=== Requirements === | === Requirements === |
Revision as of 16:50, 2 September 2019
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 cgiGet(table 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
function logOurIp(o) if o.result == 0 then log(string.format("our ip is %s", string.match(o.buffer,"(%d+.%d+.%d+.%d+)"))) else log(string.format("cgi to get our ip failed with error %d: %s", o.result, o.errorInfo)) end end -- send HTTP request and handle response cgiGet{url="http://httpbin.org/ip", callback=logOurIp, timeout=2}
Requirements
Netio FirmWare 2.3.5+
See also
- devices.system.CustomCGI() to send HTTP request without response handling