module Halite::FormData

Overview

Utility-belt to build form data request bodies.

Provides support for application/x-www-form-urlencoded and multipart/form-data types.

form = FormData.create({
  "name"   => "Lizeth Gusikowski",
  "skill"  => ["ruby", "crystal"],
  "avatar" => File.open("avatar.png"), # => "image binary data"
})

form.body    # => "----------------------------_ytTht-0D5oif0cAGXSPjPSN\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nLizeth Gusikowski\r\n----------------------------_ytTht-0D5oif0cAGXSPjPSN\r\nContent-Disposition: form-data; name=\"skill\"\r\n\r\nruby\r\n----------------------------_ytTht-0D5oif0cAGXSPjPSN\r\nContent-Disposition: form-data; name=\"skill\"\r\n\r\ncrystal\r\n----------------------------_ytTht-0D5oif0cAGXSPjPSN\r\nContent-Disposition: form-data; name=\"avatar\"; filename=\"avatar.png\"\r\n\r\nimage binary data\n\r\n----------------------------_ytTht-0D5oif0cAGXSPjPSN--"
form.headers # => HTTP::Headers{"Content-Type" => "multipart/form-data; boundary=\"--------------------------SS0a9QKeM_6fcj2CE5D4d0LQ\""}

Defined in:

halite/form_data.cr

Class Method Summary

Class Method Detail

def self.create(data : Hash(String, Halite::Options::Type) = {} of String => Halite::Options::Type) : Halite::Request::Data #

FormData factory. Automatically selects best type depending on given data Hash