cURL – program komputerowy oraz sieciowa biblioteka programistyczna (libcurl), napisane w języku C, działające po stronie klienta, z interfejsami dla ponad 30 innych języków. Umożliwia wysyłanie zapytań HTTP, w tym pobieranie z serwerów stron i plików, a także wysyłanie treści formularzy. Ułatwia tworzenie aplikacji korzystających z protokołu HTTP. Biblioteka cURL posiada ogromne możliwości, jej podstawowym zastosowaniem jest tworzenie sprzęgów w złożonych systemach opartych na technologiach Webowych.

cURL obsługuje protokoły DICT, , FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, , Telnet oraz TFTP. Wspiera także mechanizmy takie jak: certyfikaty SSL, HTTP POST, HTTP PUT, upload FTP, wysyłanie formularzy HTTP, serwery proxy, HTTP cookie, uwierzytelnianie (nazwa użytkownika oraz hasło), wznawiania transferu plików, tunelowanie proxy HTTP oraz wiele innych.

Biblioteka cURL udostępniana jest na licencji MIT.

Bindy cURL jest dostępny dla następujących języków programowania i bibliotek: Ada95, Basic, C, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Falcon, Ferite, Gambas, GTK+, Haskell, Java, Lisp, Lua, Mono, .NET, Object Pascal, OCaml, Pascal, Perl, PHP, Postgres, Python, R, Rexx, Ruby, RPG, Scheme, S-Lang, Smalltalk, SP-Forth, SPL, Tcl, Visual Basic, Visual FoxPro, Q, wxWidgets, XBLite.

Platformy cURL jest wysoko wieloplatformowy, tak więc proces jego budowania oraz zasady działania są identyczne na wielu platformach m.in. Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS oraz innych.

Zależności cURL wykorzystuje zewnętrzne biblioteki, które wspierają jego funkcje. Możliwe jest zbudowanie libcurla bez nich, lecz wtedy będzie miał ograniczoną funkcjonalność.

+ Zależności Biblioteka Wspierana funkcja OpenSSL TLS (https) zlib dekompresja OpenLDAP LDAP PolarSSL TLS (https) heimdal uwierzytelnianie Kerberos oraz SPNEGO MIT Kerberos uwierzytelnianie Kerberos oraz SPNEGO nghttp2 http2 c-ares asynchroniczne żądania DNS (name resolves) libidn kodowanie IDNA (do międzynarodowych nazw domen) GnuTLS TLS (https) NSS TLS (https) yassl TLS (https) libssh2 SCP oraz SFTP libmetalink metalinki

Przykład Poniższe przykłady mają za zadanie połączyć się z adresem „http://pl.wikipedia.org/w/index.php?title=CURL&action=edit”.

Przykład użycia biblioteki cURL w PHP:

<?php

$hand = curl_init();

curl_setopt($hand, CURLOPT_URL, 'http://pl.wikipedia.org/w/index.php'); curl_setopt($hand, CURLOPT_POST, 1); curl_setopt($hand, CURLOPT_POSTFIELDS, 'title=CURL&action=edit'); curl_exec($hand);

curl_close($hand);

?>

Przykład użycia w języku C. #include <stdio.h> #include <curl/curl.h>

int main(void) { CURL *curl; CURLcode res;

curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://pl.wikipedia.org/w/index.php"); curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "title=CURL&action=edit");

/* Wykonujemy żądanie, res będzie przechowywał kod błędu*/ res = curl_easy_perform(curl); /* Sprawdzamy błędy */ if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));

/* Zwalniamy zasoby */ curl_easy_cleanup(curl);

return 0; }

Przypisy

Linki zewnętrzne Strona projektu

Kategoria:Biblioteki programistyczne Kategoria:Menedżery pobierania plików Kategoria:Oprogramowanie na licencji MIT Kategoria:Oprogramowanie sieciowe Kategoria:Oprogramowanie wieloplatformowe Kategoria:Wolne i otwarte oprogramowanie Kategoria:Wolne oprogramowanie napisane w C