gluahttp provides an easy way to make HTTP requests from within GopherLua.
go get github.com/archersean/gluahttp
import "github.com/yuin/gopher-lua"
import "github.com/archersean/gluahttp"
func main() {
L := lua.NewState()
defer L.Close()
L.PreloadModule("http", NewHttpModule(&http.Client{}).Loader)
if err := L.DoString(`
local http = require("http")
response, error_message = http.request("GET", "http://example.com", {
query="page=1",
timeout="30s",
headers={
Accept="*/*"
}
})
`); err != nil {
panic(err)
}
}http.delete(url [, options])http.get(url [, options])http.head(url [, options])http.patch(url [, options])http.post(url [, options])http.put(url [, options])http.request(method, url [, options])http.request_batch(requests)http.response
Attributes
| Name | Type | Description |
|---|---|---|
| url | String | URL of the resource to load |
| options | Table | Additional options |
Options
| Name | Type | Description |
|---|---|---|
| query | String | URL encoded query params |
| cookies | Table | Additional cookies to send with the request |
| headers | Table | Additional headers to send with the request |
| timeout | Number/String | Request timeout. Number of seconds or String such as "1h" |
| auth | Table | Username and password for HTTP basic auth. Table keys are user for username, pass for passwod. auth={user="user", pass="pass"} |
| followRedirect | Bool | Set whether to follow redirect |
| proxyAddr | String | Set the address of the forward proxy |
Returns
http.response or (nil, error message)
Attributes
| Name | Type | Description |
|---|---|---|
| url | String | URL of the resource to load |
| options | Table | Additional options |
Options
| Name | Type | Description |
|---|---|---|
| query | String | URL encoded query params |
| cookies | Table | Additional cookies to send with the request |
| headers | Table | Additional headers to send with the request |
| timeout | Number/String | Request timeout. Number of seconds or String such as "1h" |
| auth | Table | Username and password for HTTP basic auth. Table keys are user for username, pass for passwod. auth={user="user", pass="pass"} |
| followRedirect | Bool | Set whether to follow redirect |
| proxyAddr | String | Set the address of the forward proxy |
Returns
http.response or (nil, error message)
Attributes
| Name | Type | Description |
|---|---|---|
| url | String | URL of the resource to load |
| options | Table | Additional options |
Options
| Name | Type | Description |
|---|---|---|
| query | String | URL encoded query params |
| cookies | Table | Additional cookies to send with the request |
| headers | Table | Additional headers to send with the request |
| timeout | Number/String | Request timeout. Number of seconds or String such as "1h" |
| auth | Table | Username and password for HTTP basic auth. Table keys are user for username, pass for passwod. auth={user="user", pass="pass"} |
| followRedirect | Bool | Set whether to follow redirect |
| proxyAddr | String | Set the address of the forward proxy |
Returns
http.response or (nil, error message)
Attributes
| Name | Type | Description |
|---|---|---|
| url | String | URL of the resource to load |
| options | Table | Additional options |
Options
| Name | Type | Description |
|---|---|---|
| query | String | URL encoded query params |
| cookies | Table | Additional cookies to send with the request |
| body | String | Request body. |
| form | String | Deprecated. URL encoded request body. This will also set the Content-Type header to application/x-www-form-urlencoded |
| headers | Table | Additional headers to send with the request |
| timeout | Number/String | Request timeout. Number of seconds or String such as "1h" |
| auth | Table | Username and password for HTTP basic auth. Table keys are user for username, pass for passwod. auth={user="user", pass="pass"} |
| followRedirect | Bool | Set whether to follow redirect |
| proxyAddr | String | Set the address of the forward proxy |
Returns
http.response or (nil, error message)
Attributes
| Name | Type | Description |
|---|---|---|
| url | String | URL of the resource to load |
| options | Table | Additional options |
Options
| Name | Type | Description |
|---|---|---|
| query | String | URL encoded query params |
| cookies | Table | Additional cookies to send with the request |
| body | String | Request body. |
| form | String | Deprecated. URL encoded request body. This will also set the Content-Type header to application/x-www-form-urlencoded |
| headers | Table | Additional headers to send with the request |
| timeout | Number/String | Request timeout. Number of seconds or String such as "1h" |
| auth | Table | Username and password for HTTP basic auth. Table keys are user for username, pass for passwod. auth={user="user", pass="pass"} |
| followRedirect | Bool | Set whether to follow redirect |
| proxyAddr | String | Set the address of the forward proxy |
Returns
http.response or (nil, error message)
Attributes
| Name | Type | Description |
|---|---|---|
| url | String | URL of the resource to load |
| options | Table | Additional options |
Options
| Name | Type | Description |
|---|---|---|
| query | String | URL encoded query params |
| cookies | Table | Additional cookies to send with the request |
| body | String | Request body. |
| form | String | Deprecated. URL encoded request body. This will also set the Content-Type header to application/x-www-form-urlencoded |
| headers | Table | Additional headers to send with the request |
| timeout | Number/String | Request timeout. Number of seconds or String such as "1h" |
| auth | Table | Username and password for HTTP basic auth. Table keys are user for username, pass for passwod. auth={user="user", pass="pass"} |
| followRedirect | Bool | Set whether to follow redirect |
| proxyAddr | String | Set the address of the forward proxy |
Returns
http.response or (nil, error message)
Attributes
| Name | Type | Description |
|---|---|---|
| method | String | The HTTP request method |
| url | String | URL of the resource to load |
| options | Table | Additional options |
Options
| Name | Type | Description |
|---|---|---|
| query | String | URL encoded query params |
| cookies | Table | Additional cookies to send with the request |
| body | String | Request body. |
| form | String | Deprecated. URL encoded request body. This will also set the Content-Type header to application/x-www-form-urlencoded |
| headers | Table | Additional headers to send with the request |
| timeout | Number/String | Request timeout. Number of seconds or String such as "1h" |
| auth | Table | Username and password for HTTP basic auth. Table keys are user for username, pass for passwod. auth={user="user", pass="pass"} |
| followRedirect | Bool | Set whether to follow redirect |
| proxyAddr | String | Set the address of the forward proxy |
Returns
http.response or (nil, error message)
Attributes
| Name | Type | Description |
|---|---|---|
| requests | Table | A table of requests to send. Each request item is by itself a table containing http.request parameters for the request |
Returns
[http.response] or ([http.response], [error message])
The http.response table contains information about a completed HTTP request.
Attributes
| Name | Type | Description |
|---|---|---|
| body | String | The HTTP response body |
| body_size | Number | The size of the HTTP reponse body in bytes |
| headers | Table | The HTTP response headers |
| cookies | Table | The cookies sent by the server in the HTTP response |
| status_code | Number | The HTTP response status code |
| url | String | The final URL the request ended pointing to after redirects |