На данный момент создано 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.
Никогда не используйте один и тот же хендл в разных потоках!!! (можно сделать синхронизацию, но это сведёт на нет плюсы многопоточности)
Функции[]
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.
[]
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