Strona 1 z 1

[Solved][C/C++]libcurl, przykład funkcji CURLOPT_WRITEFUNCTION

: 18 lip 2008, 20:01
autor: NoName_1990
Witam

Czy ktoś dysponuje jakimś prostym przykładem, jak zapisać pobraną przez curl stronę (źródło) do zmiennej char * ?? Mam aktualnie taki kod:

Kod: Zaznacz cały

curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl)
{
  curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
  curl_easy_setopt(curl, CURLOPT_URL, "http://adres.serwera.pl/jakistamplik.html");
  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, geturl); 
}
res = curl_easy_perform(curl);
i wiem, że aby zapisać to co curl pobierze muszę zdefiniować funkcję geturl (tą podaną przy CURLOPT_WRITEFUNCTION). Jednak nie mam najmniejszego pojęcia jak się za to zabrać :P. Może ktoś miał już styczność z libcurl, i wie jak to zrobić?? Byłbym wdzięczny za jakieś podpowiedzi...

PS Google CodeSearch nie pomogło...

EDIT:
OK, już sobie poradziłem. Zastosowałem zmienną globalną std::string HTMLCode, a potem tylko dopisywałem do niej kolejne pakiety:

Kod: Zaznacz cały

std::string HTMLCode;
static int geturl(char *data, size_t size, size_t nmemb, char *buffer)  
{
  int result = 0;  
  HTMLCode.append((const char*)data);
  result = size * nmemb;
  return result;  
}