Http:get(uri, [parameters])


Send an asynchronous GET request to the connected HTTP server for a specific resource.

Sending the GET request and receiveing the HTTP response is done by a Task asynchronously (other Tasks will be executed concurrently without blocking execution flow)

Parameters

uri

A string representing the resource to get on the server.

[parameters]

An optional table that contains parameters to be sent with the request, in the form of key1=value1&key2=value2...

Return value


This method return a Task instance. Once the Task has finished, it will return two values :
  • The first value is the Http instance used for the GET request.
  • The second value is nil in case of error or a table that contains the server response, with the following fields
    • "content" : a string containing the body part of the HTTP response
    • "elapsed" : a number representing the elapsed time to get the response
    • "status" : a number containing the HTTP response status
    • "reason" : a string containing HTTP response status text
    • "ok" : a boolean value indicating if the GET request succeeded
    • "headers" : a table containing a pair of strings(header field names of the HTTP response as key and content as values)
    • "cookies" : a table containing a pair of strings(cookies names of the HTTP response as key and content as values)

Example

local net = require "net" -- creates a Http instance and call its get() method -- the get() method will return a Task instance -- then we set the Task instance "after" property -- with a function that will be called once the Task is terminated, using the two values returned by the Task net.Http("https://wttr.in"):get("/Paris?format=3").after = function (client, response) console.write(response.content) end waitall()