Difference between revisions of "Function cgiGet()"

From wiki.netio-products.com
Jump to navigation Jump to search
Line 5: Line 5:
  
 
=== Parameters ===
 
=== Parameters ===
  <i>table</i> <tt>config</tt>
+
  <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> <tt>response</tt>
+
  <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