- 0 Обсуждение
-
Заглавная
На данный момент создано 33 статьи, и вы можете помочь нам Свежие правки | Активные участники | Категории | Справка | Шаблоны |
На этом ресурсе размещается перевод документации библиотеки 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, функциональна, имеет хорошую поддержку, быстрая, тщательно задокументирована и уже используется во многих известных, крупных и успешных компаний и в многочисленных приложениях.
Easy интерфейс
Править
При использовании в 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.
| curl_share_setopt(3) |
Примеры
Править
Простой HTTP simple.c shows how to get a remote web page in only four libcurl function calls.
Простой HTTPS https.c gets a single HTTPS page, while simplessl.c shows how to get a remote https page and a set of various SSL-controlling options.
Получит через HTTP с помещением заголовков в отдельный файл sepheader.c gets a web page and stores the response-headers in a separate file.
Простой FTP ftpget.c proves that getting a FTP file is just as simple.
FTP upload ftpupload.c uploads a local file to a remote FTP server. It also renames the file after succcessful transfer.
Получение файла в память getinmemory.c describes how you can use the callback system to fetch documents into a ram buffer with no file writing necessary.
HTTP PUT httpput.c makes PUTs a local file to a HTTP server.
Отправка HTTP формы через POST postit2.c shows how to build a RFC1867-style form post and send it to a HTTP server.
постоянные соединения persistant.c shows that just getting files in a sequential manner will make it use persistant connections if the remote server supports it.
Многопоточное получение данных с URL multithread.c starts a number of threads and retrieves one URL in each thread. This requires a working thread library.
Получение данных с URL с отображением прогресса через GTK curlgtk.c uses GTK and the libcurl progress callback to show a GUI progress bar while downloading.
fopen() URL fopen.c shows how you could write an fopen()-style emulation layer to easily make your program read URLs instead of local files.
Неблокирующаяся отправка форм multipart multi-post.c makes a multipart formpost using the multi interface, which makes it a non-blocking operation.
Отладочный Callback debug.c shows how you can use the debug callback to get a full trace of all protocol data being sent/received (and more).
Разбор HTML htmltitle.cc shows how to use libxml to parse HTML retrieved with 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 example by vivtek.com