3
CURL_LOAD_DATA *grab_http_response(const char *url)
7
CURL *curl = curl_easy_init();
11
data = do_grab(curl,url);
12
curl_easy_cleanup(curl);
18
CURL_LOAD_DATA *do_grab(CURL *curl,const char *url)
21
CURL_LOAD_DATA *data = (CURL_LOAD_DATA *)malloc(sizeof(CURL_LOAD_DATA));
25
curl_easy_setopt(curl,CURLOPT_URL,url);
26
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,response_callback);
27
curl_easy_setopt(curl,CURLOPT_WRITEDATA,data);
29
res=curl_easy_perform(curl);
34
size_t response_callback(void *ptr,size_t size,size_t nmemb, void *d)
36
size_t rsize=size*nmemb;
37
CURL_LOAD_DATA *data=(CURL_LOAD_DATA *)d;
38
// fprintf(stderr,"rsize is %d\n", rsize);
39
data->data=(char *)realloc(data->data,(data->nbytes+rsize)
41
memcpy(&(data->data[data->nbytes]),ptr,rsize);
42
data->nbytes += rsize;
43
// fprintf(stderr,"data->nbytes is %d\n", data->nbytes);