Search     or:     and:
 LINUX 
 Language 
 Kernel 
 Package 
 Book 
 Test 
 OS 
 Forum 
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