En C, comment utilisez-vous libcurl pour lire une réponse HTTP dans une chaîne?

J'ai des devoirs où j'ai besoin d'une certaine manière à comparer les deux réponses HTTP. Je suis en train d'écrire sur le C et j'ai utiliser libcurl pour rendre les choses plus facile. Je suis l'appel de la fonction qui utilise libcurl pour faire une demande et la réponse HTTP à partir d'une autre fonction, et je veux le retour de la réponse HTTP en tant que char *. Voici mon code pour l'instant (ça plante):

#include <stdio.h>
#include <curl/curl.h>
#include <string.h>

size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream) {
    size_t written;
    written = fwrite(ptr, size, nmemb, stream);
    return written;
}

char *handle_url(void) {
    CURL *curl;
    char *fp;
    CURLcode res;
    char *url = "http://www.yahoo.com";
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
        res = curl_easy_perform(curl);
        if(res != CURLE_OK)
                fprintf(stderr, "curl_easy_perform() failed: %s\n",   curl_easy_strerror(res));

        curl_easy_cleanup(curl);

        //printf("\n%s", fp);
    }
    return fp;
}

Cette solution C libcurl obtenir une sortie dans une chaîne fonctionne, mais pas dans mon cas car j'ai juste envie de retourner la chaîne à la fonction appelante.

Des idées?

source d'informationauteur empty set