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
 MINIX...3057 
 Solaris...2933 
 LD...2906 
 Linux Kernel 2.6...2486 
 William Gropp...2182 
 Rodriguez 6...2016 
 C++ Templates 3...1946 
 Trees...1938 
 Kamran Husain...1866 
 Secure Programming for Li...1792 
 Максвелл 5...1711 
 DevFS...1695 
 Part 3...1684 
 Stein-MacEachern-> Час...1632 
 Go Web ...1627 
 Ethreal 4...1619 
 Стивенс 9...1607 
 Arrays...1607 
 Максвелл 1...1593 
 FAQ...1539 
 
  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