Skip to content
This repository has been archived by the owner on Jun 19, 2023. It is now read-only.

blocknotes/curl-crystal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libcurl for Crystal - PROJECT UNMAINTAINED Build Status

This project is not maintained anymore

If you like it or continue to use it fork it please.



Crystal C bindings for libcurl, the multiprotocol file transfer library - see libcurl

Installation

Add this to your application's shard.yml:

dependencies:
  curl-crystal:
    github: blocknotes/curl-crystal

Usage

CURL version:

require "curl-crystal"
puts String.new LibCurl.curl_version

Fetch an URL an print the content to the STDOUT:

require "curl-crystal"
curl = LibCurl.curl_easy_init  # init
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_URL, "https://www.google.com"  # set URL
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_FOLLOWLOCATION, 1  # follow redirect
LibCurl.curl_easy_perform curl  # run
LibCurl.curl_easy_cleanup curl  # deinit

Simple POST request:

require "curl-crystal"
curl = LibCurl.curl_easy_init  # init
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_URL, "http://localhost"
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_POSTFIELDS, "param1=Just+a+test&param2=12.345"
LibCurl.curl_easy_perform curl  # run
LibCurl.curl_easy_cleanup curl  # deinit

Invalid URL error:

require "curl-crystal"
curl = LibCurl.curl_easy_init
LibCurl.curl_easy_setopt curl, LibCurl::CURLoption::CURLOPT_URL, "https://aaa.bbb.ccc.ddd"
ret = LibCurl.curl_easy_perform curl  # CURLE_COULDNT_RESOLVE_HOST
puts ret.to_s + ": " + String.new( LibCurl.curl_easy_strerror( ret ) )
LibCurl.curl_easy_cleanup curl

More examples

Notes

Base on curl version: 7.52.1

Contributors

About

Crystal C bindings for libcurl

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published