Re: libCurl in C
Fabian Ischia <[email protected]>
| Newsgroups | org.kernel.vger.linux-c-programming |
|---|---|
| Message-ID | <[email protected]> |
You have to set a write function that will be called when curl receives
the data. You can do whatever you want with the raw info retrieved by
the funciton
........
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, write_data);
..........
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
{
char *data;
fprintf(stderr, "Allocating %ld * %ld = %ld\n", (long)size,
(long)nmemb, (long)(size * nmemb));
data = calloc(size, nmemb);
if(!data)
return -1;
fprintf(stderr, "Allocation succeeded\n");
memcpy(data, buffer, size * nmemb);
return size * nmemb;
}
Jai Sharma wrote:
> Dear Friends,
>
> I am using CURL to get HTTP response.
> The default output for CURL is stdout, but i am unable to change it to
> a variable.
>
> Right now,
> I am using a temporary file for this purpose and read it to process it.
> Is there any way, by which method i will get CURL output to a string
> or any structure?
>
> ===================== main.c =====================
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <curl/curl.h>
>
> int
> main()
> {
> CURL *curl;
> char *data1[512];
>
> FILE *fp;
> fp = fopen("/tmp/curl","w");
>
> curl = curl_easy_init();
> if(curl) {
> curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1");
> curl_easy_setopt(curl, CURLOPT_HEADER, 0);
> curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
> curl_easy_perform(curl);
> curl_easy_cleanup(curl);
> }
>
> fclose(fp);
> return 0;
> }
>
> ================================================
>
> Thanks and Regards
> Jai
> --
> To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>