ФЭНДОМ


Добро пожаловать на ресурс, посвященный русской документации Libcurl

На данный момент создано 56 статей, и вы можете помочь нам

Свежие правки | Активные участники | Категории | Справка | Шаблоны

На этом ресурсе размещается перевод документации библиотеки libcurl. Оригинал документации и саму библиотеку вы можете найти на официальном сайте http://curl.haxx.se/libcurl/. Цель проекта - обеспечить полный перевод на русский язык и обеспечить удобную навигацию по документации. Если вы нашли ошибку, замечание, неточность или грубость перевода, не поленитесь, откорректируйте страницу, ведь в том числе и от вашей работы зависит качество проекта. А если есть возможность, заведите описание еще не переведенных функций. Если вы решите помочь с переводом, пожалуйста, ознакомитесь с Правилами перевода.

Here you can find Libcurl documentation in Russian. Libcurl - a library used in the utility curl.

Libcurl Править

libcurl это свободная и простая в использовании клиентская библиотека по передачи данных по URL, она поддерживает DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET и TFTP. Также libcurl имеет поддержку SSL сертификатов, HTTP POST, HTTP PUT, FTP загрузку, HTTP form загрузку, proxy, cookies, user+password авторизацию (Basic, Digest, NTLM, Negotiate, Kerberos), докачивания файлов, http прокси туннелирования и многого другого!

libcurl легко переносима, она собирается и работает на многих платформах, включая 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 и остальные...

libcurl свободна, потокобезопасна, совместима с IPv6, функциональна, имеет хорошую поддержку, быстрая, тщательно задокументирована и уже используется во многих известных, крупных и успешных компаниях и в многочисленных приложениях.

Простой интерфейс Править

При использовании в Libcurl "простого" интерфейса вы инициализируете сеанс и получаете handle (часто упоминается как "easy handle"), который вы используете в качестве аргумента в функциях Easy интерфейса. Используйте curl_easy_init, чтобы получить handle.

После получения вы должны установить все нужные параметры в предстоящей передаче, наиболее важным среди которых является URL (передавать что-то без заданного URL невозможно). Вы можете задавать различные функции обратного вызова, которые будут вызываться из библиотеки, при получении данных и т.д. Для всего этого используется curl_easy_setopt.

После того как все настройки окончены, вы сообщаете Libcurl выполнение передачи с помощью curl_easy_perform. Она проделает все операции и вернет результат своей работы типа перечисления CURLcode.

После передачи, вы можете установить новые настройки и сделать еще передачу, или, если вы уже закончили, вызовите очистку сессии curl_easy_cleanup. Если вы хотите иметь постоянное подключение, не освобождайте handle сразу, вместо этого выполните другие передачи с использованием этого же handle.

Никогда не используйте один и тот же хендл в разных потоках!!! (можно сделать синхронизацию, но это сведёт на нет плюсы многопоточности)

Функции Править

curl_easy_init curl_easy_getinfo Needtranslate curl_easy_strerror curl_free
curl_easy_cleanup curl_easy_setopt curl_easy_escape curl_escape Needtranslate
curl_easy_duphandle curl_easy_perform curl_easy_unescape curl_unescape Needtranslate
curl_easy_reset curl_easy_pause curl_formadd Needtranslate curl_getdate Needtranslate
curl_global_init curl_easy_send Needtranslate curl_formfree curl_version
curl_global_init_mem curl_easy_recv Needtranslate curl_slist_append Needtranslate curl_version_info Needtranslate
curl_global_cleanup curl_slist_free_all Needtranslate

Multi интерфейс Править

This is an overview on how to use the libcurl multi interface in your C programs. There are specific man pages for each function mentioned in here. There's also the libcurl-tutorial(3) man page for a complete tutorial to programming with libcurl and the libcurl-easy(3) man page for an overview of the libcurl easy interface.

All functions in the multi interface are prefixed with curl_multi.

Share интерфейс Править

This is an overview on how to use the libcurl share interface in your C programs. There are specific man pages for each function mentioned in here.

All functions in the share interface are prefixed with curl_share.

Это обзор того, как использовать libcurl share интерфейс в ваших C-программах. Для каждой функции, упомянутой здесь, существуют конкретные man-страницы.

Все функции в разделяемом (share) интерфейсе снабжаются префиксом curl_share.

ПримерыПравить

HTTP

simple.c - демонстрация получения удалённой веб-страницы с помощью всего четырёх функций libcurl.

HTTPS

https.c - получение страницы HTTPS.
simplessl.c - демонстрирует получение HTTPS-страницы и установку различных опций SSL.

HTTP с заголовками

sepheaders.c - получение веб-страницы и запись заголовков ответа в отдельный файл.

FTP

ftpget.c - доказывает простоту получения файла по FTP.

FTP отправка

ftpupload.c - отправляет локальный файл на удалённый FTP-сервер, а также переименовывает файл после успешной передачи.

Получение файла в память

getinmemory.c - описывает процесс использования системы обратных вызов для получения документов в буфер в памяти без необходимости записывать файлы.

HTTP PUT

httpput.c - выполнение PUT-запроса локального файла на HTTP-сервер.

HTTP POST

postit2.c - показывает как создать форму по RFC1867 и отправить её на HTTP-сервер.

Постоянные соединения

persistant.c демонстрирует как можно получать файлы последовательно через одно соединение, если удаленный сервер поддерживает это.

Многопоточное получение URL

multithread.c - запуск нескольких потоков для получения одного URL. Необходима поточная библиотека.

Получение URL с отображением прогресса через GTK

curlgtk.c - использует GTK и обратный вызов libcurl для показа GUI-прогресса выполнения загрузки.

fopen() для URL

fopen.c демонстрирует как можно использовать fopen()-эмуляцию для чтения URL вместо локальных файлов.

Неблокирующаяся отправка формы

multi-post.c makes a multipart formpost using the multi interface, which makes it a non-blocking operation.

Отладочный обратный вызов

debug.c показывает как можно использовать ответ debug чтобы получить полную цепочку всех данных протокола, которые были отправлены/получены (и не только).

Парсинг HTML

htmltitle.cc показывает как использовать libxml для парсинга HTML полученного libcurl.

Использование CURLOPT_SSL_CTX_FUNCTION

curlx.c uses CURLOPT_SSL_CTX_FUNCTION to set a custom callback to deal with an OpenSSL SSL_CTX * at SSL handshake time.

Выполнение SOAP через libcurl

SOAP-пример от vivtek.com

См. такжеПравить

Список всех функций