2011-01-20 13 views
5

To jest prawdopodobnie głupie pytanie, ale jak faktycznie uzyskać dane witryny zwrócone przez curl_easy_perform() do zmiennej, które mogę pracować. Kiedy się uruchomi, po prostu widzę, jak to wszystko błyska na terminalu. Używam przy okazji C.Problem z libcurl z uzyskaniem danych z curl_easy_perform()

Wszelkie pomysły? Dzięki.

EDIT: Jest to kod używam (? Mam dostęp do API Twittera Streaming, ja nawet robi to poprawnie)

int main(void) 
{ 
    CURL *curl; 
    CURLcode res; 

    curl = curl_easy_init(); 
    if(curl) { 
    curl_easy_setopt(curl, CURLOPT_URL, "http://stream.twitter.com/1/statuses/filter.json?track=http"); 
curl_easy_setopt(curl, CURLOPT_USERPWD, "JEggers2:password"); 
    res = curl_easy_perform(curl); 

    /* always cleanup */ 
    curl_easy_cleanup(curl); 


    } 
    return 0; 
} 
+0

Jak wygląda twój kod? – chrisaycock

+0

opublikował to powyżej, dzięki –

Odpowiedz

6

Aby uzyskać dane do łańcucha, ty należy skonfigurować funkcję zapisu callback:

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback_func); 

również adres zmiennej łańcucha otrzymywać dane:

curl_easy_setopt(curl, CURLOPT_WRITEDATA, &str) 

funkcja oddzwaniania będzie wyglądać następująco:

size_t callback_func(void *ptr, size_t size, size_t count, void *stream) 
{ 
     /* ptr - your string variable. 
     stream - data chuck you received */ 

    printf("%.*s", size, (char*)stream); 
} 

Ponieważ nie będzie wiedział, całkowity rozmiar danych chcesz otrzymywać tak, czego potrzeba, aby wskaźnika ponownych przydziałów, aby dostać go w ciąg .

+0

możesz podać przykład funkcji zwrotnej, proszę? dzięki –

+0

Otrzymuję: main.c: 10: warning: format nie literał łańcuchowy i brak argumentów formatujących. Jakieś pomysły? –

+0

Zgaduję, że potrzebujesz strumienia 'printf ("% s ", (char *))' ' – cpx

Powiązane problemy