Search     or:     and:
 LINUX 
 Language 
 Kernel 
 Package 
 Book 
 Test 
 OS 
 Forum 
 iakovlev.org 
 Packages
 Make 
 Iptables 
 Nmap 
 Apache 
 LFS 
 TUX 
 cURL 
 libpcap 
 Parted 
 Httpd 
 File managers 
 FFMPEG 
 RTMP 
 SQL 
 Test 
 Git 
NEWS
Последние статьи :
  Тренажёр 16.01   
  Эльбрус 05.12   
  Алгоритмы 12.04   
  Rust 07.11   
  Go 25.12   
  EXT4 10.11   
  FS benchmark 15.09   
  Сетунь 23.07   
  Trees 25.06   
  Apache 03.02   
 
TOP 20
 Linux Kernel 2.6...3415 
 MINIX...3087 
 Solaris...2962 
 LD...2956 
 William Gropp...2278 
 Trees...2142 
 Rodriguez 6...2072 
 C++ Templates 3...1983 
 Kamran Husain...1934 
 Secure Programming for Li...1852 
 Максвелл 5...1763 
 DevFS...1753 
 Part 3...1738 
 Go Web ...1674 
 Ethreal 4...1669 
 Стивенс 9...1664 
 Stein-MacEachern-> Час...1662 
 Arrays...1641 
 Максвелл 1...1636 
 ffmpeg->tutorial...1586 
 
  01.01.2024 : 3621733 посещений 

iakovlev.org

cURL FAQ

 
 

FAQ

cURL - это название проекта , которое можно трактовать как 'Client for URLs' или 'Client URL Request Library'. Библиотеку можно скачать по адресу http://curl.haxx.se/libcurl/ . Проект состоит из 2-х продуктов : 1 libcurl - библиотека , поддерживающая FTP,FTPS,HTTP, HTTPS,GOPHER,TELNET,DICT,FILE,LDAP. Поддержка HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling. 2. curl - командная утилита для получения и отсылки файлов В libcurl прописан интерфейс основных интернет-протоколов . Ее можно свободно использовать в своих приложениях. В то же время curl не является клоном wget , он предназначен для трансфера единичных файлов . Curl также не является программой для зеркалирования сайтов , хотя вам никто не запрещает написать скрипт с использованием Curl для зеркалирования . Также Curl мультиплатформенный . Список языков , для которых есть библиотечный интерфейс : Basic, C, C++, Cocoa, Dylan, Euphoria, Java, Lua, Object-Pascal, Pascal, Perl, PHP, PostgreSQL, Python, Rexx, Ruby, Scheme , Tcl. Например , для того чтобы сделать пост на какой-то адрес , можно набрать команду : curl -d "datatopost" -H "Content-Type: text/xml" [URL] В Curl нет встроенной поддержки javascript . При работе Curl с SSL нужно различать 3 основных типа сертификатов : 1. Client certificate - иногда SSL-сервер может затребовать его у вас 2. Server certificate - обязателен для SSL-сервера . При коннекте с таким сервером Curl проверяет его с помощью Certificate Authority certificate ("CA cert"). Проверка успешно может не состояться, тогда вам будет отказано в доступе. В этом случае можно попробовать с вашей стороны задисэблить эту проверку . 3. - Certificate Authority certificate ("CA cert") - При работе с Curl возможно получение следующих ошибок 4.5.1 "400 Bad Request" 4.5.2 "401 Unauthorized" 4.5.3 "403 Forbidden" 4.5.4 "404 Not Found" 4.5.5 "405 Method Not Allowed" 4.5.6 "301 Moved Permanently" Начиная с версии 7.10 Curl работает с NTLM - проприетарным протоколом от сами знаете кого . libcurl написана с использованием трэдов . Ниже показана техника , с помощью которой можно записать всю полученную информацию с удаленного сервера в память , а не в файл : для этого нужно определить структуру памяти и указатель на нее передать в callback-функцию : /* imaginary struct */ struct MemoryStruct { char *memory; size_t size; }; /* imaginary callback function */ size_t WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data) { size_t realsize = size * nmemb; struct MemoryStruct *mem = (struct MemoryStruct *)data; mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1); if (mem->memory) { memcpy(&(mem->memory[mem->size]), ptr, realsize); mem->size += realsize; mem->memory[mem->size] = 0; } return realsize; } Для получения с помощью Curl нескольких файлов нужно в цикле использовать вызовы curl_easy_setopt() curl_easy_perform().
Оставьте свой комментарий !

Ваше имя:
Комментарий:
Оба поля являются обязательными

 Автор  Комментарий к данной статье
Andre
  пояснительно!
для того чтобы понять что такое курл - не очень много, но чтото понятно!
2006-06-12 13:38:12
Николай
  Оч. класный перевод. Мы все с нетерпением ждем продолжения. ух блин почти стихами получается =)
2007-02-05 09:11:46