Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.0.0+

HTTP PUT JSON

See more HTTP Examples

Demonstrates how to send a JSON PUT and get the JSON response body.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local req = chilkat.HttpRequest.new()
local http = chilkat.Http.new()

-- The PUT request to be sent will look like this:

-- PUT /request HTTP/1.1
-- Content-Type: application/jsonrequest
-- Cookie: JSESSIONID=1234
-- Content-Encoding: identity
-- Host: json.penzance.org
-- Accept: application/jsonrequest
-- Accept-Encoding:
-- Content-Length: 72
--
-- {"user":"doctoravatar@penzance.com","forecast":7,"t":"vlIj","zip":94089}

-- First, remove default header fields that would be automatically
-- sent.  (These headers are harmless, and shouldn't need to
-- be suppressed, but just in case...)
ERROR: Property not in Chilkat for Lua: Http.AcceptCharset
http.AcceptCharset = ""
http.user_agent = ""
ERROR: Property not in Chilkat for Lua: Http.AcceptLanguage
http.AcceptLanguage = ""

-- Suppress the Accept-Encoding header by disallowing
-- a gzip response:
http.allow_gzip = false

-- If a Cookie needs to be added...
http:set_request_header("Cookie", "JSESSIONID=1234")

-- Add the Content-Encoding: identity header.
http:set_request_header("Content-Encoding", "identity")

-- Modify the default "Accept" header:
http.accept = "application/jsonrequest"

local jsonText = "{\"user\":\"doctoravatar@penzance.com\",\"forecast\":7,\"t\":\"vlIj\",\"zip\":94089}"

-- IMPORTANT: Make sure to change the URL, JSON text,
-- and other data items to your own values.  The URL used
-- in this example will not actually work.

local resp = chilkat.HttpResponse.new()
local success = http:http_str("PUT", "http://json.penzance.org/request", jsonText, "utf-8", "application/jsonrequest", resp)
if not success then
    print(http.last_error_text)
    return
end

print("Response status code: " .. resp.status_code)
print("Response JSON:")
print(resp.body_str)