Module cURL
Provide same functions as `lcurl` module with some additions.
Here are the only functions that have been added or changed.
Functions
- form (form)
- Create HTTP multipart/formdata object.
Parameters:
- form FORM_DESCRIPTION description
Returns:
Form new curl HTTP Post object context
See also:
Tables
- FORM_DESCRIPTION
- Form description table.
Fields:
Usage:
post_form = cURL.form{
name01 = {
file = "post_form.lua",
type = "text/plain",
name = "post.lua",
},
name02 = {
data = "<html><bold>bold</bold></html>",
name = "dummy.html",
type = "text/html",
},
name03 = {
stream = Stream:new('8', 25),
name = "stream1.txt",
type = "text/plain",
headers = {
"X-Test-Char : 8",
"X-Test-length : 25",
}
},
name04 = {
stream = stream,
length = length,
name = "stream2.txt",
type = "text/plain",
},
name05 = 'value05',
name06 = { 'value06', type = "text/plain",
},
}
- form_stream
- Table describe stream part in form.
Fields:
- stream function, table or userdata stream function is same as in readfunction. Also stream object may provide `length` method.
- length number (default stream:length())
- name string file name
- type string mime type (e.g. 'text/plain')
- headers table array of headers
- form_file
- Table describe file part in form.
Fields:
- file string path to file in local FS (e.g. 'path/to/some/file.txt')
- name string file name (default basename(file))
- type string mime type (e.g. 'text/plain')
- headers table array of headers
- form_buffer
- Table describe buffer part in form.
Fields:
- data string file content
- name string file name
- type string mime type (e.g. 'text/plain')
- headers table array of headers
- form_content
- Table describe content part in form.
Fields:
- content string value (or first field in table)
- type string mime type (e.g. 'text/plain')
- headers table array of headers
Class httpform
- httpform:add (form)
- Add new part to form.
Parameters:
- form FORM_DESCRIPTION description
Returns:
httpform self
See also:
Class easy
- easy:perfom ([options])
- Perform a file transfer
Parameters:
Returns:
easy self
Usage:
e:perfom{writefunction = assert(io.open("fname.txt", "w+b"))}
- easy.data
- User data.
Please use this field to associate any data with curl handle.
Usage:
f = io.open("lua.org.download", "w+")
e = curl.easy{url = "http://lua.org", writefunction = f}
e.data = f
Class multi
- multi:iperform ()
- Iterator that returns the next data, type and corresponding easy handle.
Returned data types: `response`, `header`, `data`, `error`, `done`.
Note. response data may appeare several times (e.g. if you proceed http request with digest auth you should get 401 and 200 responses).
Easy handle is removed at the end of the operation (when get `done` or `error` row).Returns:
Iterator iterator for generic for
Usage:
for data, type, easy in m:iperform() do ... end
- multi.data
- User data.
Please use this field to associate any data with curl handle.