Help us shape the future of Go! Take the 2026 Go Developer Survey

http

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2022 License: BSD-3-Clause Imports: 4 Imported by: 0

README

http GoDoc

Functions

  • client() - returns http client instance for further usage. Avaliable options as table:
proxy="http(s)://<user>:<password>@host:<port>",
timeout= 10,
insecure_ssl=false,
user_agent = "gopher-lua",
basic_auth_user = "",
basic_auth_password = "",
headers = {"key"="value"},
debug = false,
  • request(method, url, [data]) - make request userdata.

Methods

client
  • do_request(request) - returns result of request. Avaliable data are: 'body', 'headers', 'code'

Examples

Client
local http = require("http")
local client = http.client()

-- GET
local request = http.request("GET", "http://hostname.com")
local result, err = client:do_request(request)
if err then error(err) end
if not(result.code == 200) then error("code") end
if not(result.body == "xxx.xxx.xxx.xxx") then error("body") end

-- auth basic
local request = http.request("GET", "http://hostname.com")
request:set_basic_auth("admin", "123456")

-- headers
local client = http.client()
local request = http.request("POST", "http://hostname.com/api.json", "{}")
request:header_set("Content-Type", "application/json")

-- with proxy
local client = http.client({proxy="http(s)://login:password@hostname.com"})
local request = http.request("POST", "http://hostname.com/api.json", "{}")

-- ignore ssl
local client = http.client({insecure_ssl=true})
local request = http.request("POST", "http://hostname.com/api.json", "{}")

-- set headers for all request
local client = http.client({ headers={key="value"} })

-- set basic auth for all request
local client = http.client({basic_auth_user="admin", basic_auth_password="123456"})
Server
Accept variant (single-threaded)
local server, err = http.server("127.0.0.1:1113")
if err then error(err) end

while true do
  local request, response = server:accept() -- lock and wait request

  -- print request
  print("host:", request.host)
  print("method:", request.method)
  print("referer:", request.referer)
  print("proto:", request.proto)
  print("path:", request.path)
  print("raw_path:", request.raw_path)
  print("raw_query:", request.raw_query)
  print("request_uri:", request.request_uri)
  print("remote_addr:", request.remote_addr)
  print("user_agent: "..request.user_agent)

  -- get body
  local body, err = request.body()
  if err then error(err) end
  print("body:", body)

  for k, v in pairs(request.headers) do
    print("header: ", k, v)
  end
  for k, v in pairs(request.query) do
    print("query params: ", k, "=" ,v)
  end
  -- write response
  response:code(200) -- write header
  response:header("content-type", "application/json")
  response:write(request.request_uri) -- write data
  -- response:redirect("http://google.com")
  response:done() -- end response

end
Handle variant (multithreaded)
local server, err = http.server("127.0.0.1:1113")
if err then error(err) end

server:do_handle_string([[ -- do_handle_file

-- same methods for request like in accept
  -- get body
local body, err = request.body()
if err then error(err) end
print("body:", body)


response:code(200) -- write header
response:write(request.request_uri)
response:done()

]]
Serve Static files

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Loader

func Loader(L *lua.LState) int

Loader is the module loader function.

func Preload

func Preload(L *lua.LState)

Preload adds http to the given Lua state's package.preload table. After it has been preloaded, it can be loaded using require:

local http = require("http")

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL