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
 Assembler...2463 
 Advanced Bash Scripting G...2239 
 Ethreal 4...1764 
 Secure Programming for Li...1533 
 CPAN-> FAQ...1362 
 Ethreal 1...1231 
 Intel 386...1158 
 Go Web ...1156 
 Trees...1119 
 Тренажёр...1098 
 Alg1...1087 
 Максвелл 3...1044 
 William Gropp...1036 
 Rust...997 
 Ext4 FS...988 
 C + UNIX...882 
 Go...862 
 Benchmark...844 
 Mod_parrot...819 
 System...801 
 
  01.01.2025 : 3803065 посещений 

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