You need mruby-tls which needs libressl (http://www.libressl.org) somewhere your compiler can find it, for example on OS X with homebrew you have to add something like this to build_config.rb
conf.gem mgem: 'mruby-tls' do |g|
g.cc.include_paths << '/usr/local/opt/libressl/include'
g.linker.library_paths << '/usr/local/opt/libressl/lib'
end
Simple GET
HttpsClient.new.get("https://github.com/") do |response|
unless response.body
puts response.minor_version
puts response.status
puts response.msg
puts response.headers
else
print response.body
end
end
Simple POST
body = "hello world"
HttpsClient.new.post("https://github.com", body) do |response|
unless response.body
puts response.minor_version
puts response.status
puts response.msg
puts response.headers
else
print response.body
end
end
POST a Enumerable
body = ["hello", "world"]
HttpsClient.new.post("https://github.com", body) do |response|
unless response.body
puts response.minor_version
puts response.status
puts response.msg
puts response.headers
else
print response.body
end
end
POST a Fiber
body = Fiber.new do
Fiber.yield "hello"
Fiber.yield "world"
end
HttpsClient.new.post("https://github.com", body) do |response|
unless response.body
puts response.minor_version
puts response.status
puts response.msg
puts response.headers
else
print response.body
end
end
The response body is always streamed, if you need to work with the complete body at once you have to stitch it together.