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

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
NoName_1990
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 28 lut 2007, 18:01
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86

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

Post 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;  
}
Zablokowany

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości