Search     or:     and:
 LINUX 
 Language 
 Kernel 
 Package 
 Book 
 Test 
 OS 
 Forum 
iakovlev.org

cURL Internals

 
  

Internals

Различия unix - windows 1. Функции для работы с сокетами имеют различный префикс. 2. Для создания сокета под винду нужны дополнительные вызовы 3. Файловые дескрипторы для сетевых соединений под винду имеют менее очевидную структуру,чем под юникс. 4. При выводе в поток винда делает досовские end-of-lines , что например может разрушить структуру данных , если она бинарная . Основные функции библиотеки имеют начальный префикс 'curl_easy' и лежат в lib/easy.c. 2 функции curl_global_init_() curl_global_cleanup() вызываются в начале и в конце . Функции типа printf() лежат в lib/mprintf.c. Функция curl_easy_init() создает структуру SessionHandle , которая работает со всеми функциями типа curl_easy. Функция curl_easy_setopt() инициализирует эту структуру . Функция curl_easy_perform() запускает : Curl_connect() Curl_do() Transfer() Curl_done() Curl_disconnect() 2 FTP-шных функции : Curl_if2ip() - получает ip-шник интерфейса Curl_ftpsendf() - посылает команды на ftp-сервер Получить 2 документа сразу : curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/ Получить удаленную страницу с сайта и скопировать ее локально : curl -o thatpage.html http://www.netscape.com/ Для получения ftp-файлов можно пойти несколькими путями : curl ftp://name:passwd@machine.domain:port/full/path/to/file или curl -u name:passwd ftp://machine.domain:port/full/path/to/file Можно документ получать по частям . Например , для получения первых 100 байтов : curl -r 0-99 http://www.get.this/ Получить последние 500 байт : curl -r -500 http://www.get.this/ FTP-upload : curl -T - ftp://ftp.upload.com/myfile или так: curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile HTTP-upload : curl -T - http://www.upload.com/myfile Если что-то не работает , можно использовать опцию дебага : curl -v ftp://ftp.upload.com/ или curl --trace trace.txt www.haxx.se Для хранения http-хидера в отдельном файле : curl --dump-header headers.txt curl.haxx.se Для поста http-данных можно использовать опцию -d : curl -d "name=Rafael%20Sagula&phone=3320780" \ http://www.where.com/guest.cgi Рассмортим пример - пусть на сайте http://www.formpost.com/getthis/ лежит форма : < form action="post.cgi" method="post"> < input name=user size=10> < input name=pass type=password size=10> < input name=id type=hidden value="blablabla"> < input name=ding value="submit"> Мы хотим передать user='foobar' и password='12345': curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" (continues) http://www.formpost.com/getthis/post.cgi
Оставьте свой комментарий !

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

 Автор  Комментарий к данной статье