send_http_request

The send_http_request function sends an HTTP request.

Syntax

send_http_request( params )

Arguments

Argument Description
params (table) Named parameters that configure the HTTP request. The table maps parameter names (string) to parameter values. For information about the parameters that you can set, see the following table.

Named Parameters

Named Parameter Description
url (string) The full URL for the HTTP request. If you provide a URL, the other parameters used to build the URL are not used.
method (string) The HTTP method to use (GET, POST, or DELETE). The default is "GET".
headers (table) A table of HTTP headers to send with the request. The table must map header names to values.
content (string) For HTTP POST, the data to be sent with the post.
site (string) The site to which the HTTP request is sent.
port (integer) The port to which the HTTP request is sent. By default, the request is sent to port 80.
uri (string) The URI to request.
params (table) Additional parameters for the request. The table must map parameter names to parameter values.
section (string) The name of a section in the configuration file that contains transport related parameters such as SSL or proxy settings. For a list of the IDOL HTTP Client configuration parameters that you can set in the configuration file, see HTTP Client Parameters.
options (table) A table of HTTP client options, and values, to use for the request. For a list of the IDOL HTTP Client options that you can set in the table, see HTTP Client Parameters.

Returns

String. The HTTP response.

The send_http_request function can throw an exception if the request fails. You can catch an exception by calling send_http_request using the Lua function pcall.

Examples

The following example shows how to make a simple request:

local wikipedia_page = send_http_request(
   {url = "http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"} )

The following example shows how to make the same request but catch any exceptions with the Lua pcall function:

local result, response = pcall ( send_http_request,
   {url = "http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"} )

When the send_http_request function is successful, the result variable is true and response contains the response. If an exception is thrown from send_http_request, the result variable is false and response contains the error message.

The following examples demonstrate how to add additional named parameters:

local google_search = send_http_request(
   {site = "www.google.co.uk", port = 80, uri = "/search",
   params = {q = "http protocol", safe = "active"}} )
local search = send_http_request(
   {site = "www.site.com", port = 80, uri = "/query",
   params = {text = "http headers", maxresults = "10"}
   headers = { Cache-Control = "no-cache" }} )